0

非常に厄介な何か。

これは私のコードです:

Map<String, Object[]> data = new HashMap<String, Object[]>();
    data.put("1", new Object[] {"VENDOR_NAME", "COUNTRY_CODE", "PREFIX" , "RATE" , "CURRENCY" });
    data.put("2", new Object[] {10d, "John", 1500000d});
    data.put("3", new Object[] {2d, "Sam", 800000d});
    data.put("4", new Object[] {3d, "Dean", 700000d});

    Set<String> keyset = data.keySet();
    int rownum = 0;
    for (String key : keyset) {
        System.out.println(key);
    }

結果: 3 , 2 ,1 ,4

なぜ注文がすべて混在しているのでしょうか :S ?

4

2 に答える 2

2

なぜ注文がすべて混在しているのでしょうか :S ?

aは、そのHashMap要素の反復の順序を保証しないためです。一定の順序は得られません。広告掲載オーダーが必要な場合は、LinkedHashMap.

于 2013-10-02T07:18:26.517 に答える
0

あなたがドキュメントを見ているなら:-

Map インターフェースのハッシュテーブルベースの実装。この実装は、すべてのオプションのマップ操作を提供し、null 値と null キーを許可します。(HashMap クラスは Hashtable とほぼ同じですが、同期されず、null を許可する点が異なります。) このクラスは、マップの順序に関して保証しません。特に、順序が長期的に一定であることを保証するものではありません。

そのため、順序がすべて混乱しているのがわかります。@Rohitが提案したように、順序を維持したい場合はaを使用してみてください。LinkedHashMap

于 2013-10-02T07:20:27.733 に答える