3

ペアのセットを格納するために HashMaps を使用しますが、(Php クライアントからの) 最初の json シリアル化から Java HashMap セットのブラウジングまで、キーの順序が同じであることも確認する必要があります。

//import com.google.gson.Gson;
//import com.google.common.base.Joiner;  
String s = "{\"durant\":\"kevin\", \"james\":\"lebron\",\"harden\":\"james\",\"westbrook\":\"russel\"}";
System.out.println(s);
Gson gson = new Gson();
Type typeOfMap = new TypeToken<Map<String, String>>() {}.getType();
Map<String, String> m = gson.fromJson(s, typeOfMap);
List<String> entries = new ArrayList< String>(m.keySet());
//Collections.sort(entries);
System.out.println(entries);
System.out.println(m.entrySet());
System.out.println( Joiner.on(",").withKeyValueSeparator("").join(m) );

再度ソートせずに(ここではキーをアルファベット順に)小さな値のセットで機能しているようですが、信頼できる方法ですか?json String と Map ブラウジングの間で順序が変わる可能性はありますか?

編集:おそらく LinkedHashMap はより順序を維持していますか?

4

3 に答える 3

3

LinkedHashMap挿入順序を維持します。それ以外にも、 などSortedMapのさまざまな実装がありますTreeMap

于 2012-06-11T04:53:42.403 に答える
0

SO でこの質問を確認できます: How does Java order items in a HashMap or a HashTable?

より鮮明な画像を提供することができます...

于 2012-06-11T04:54:56.243 に答える