1

、、ペアをLinkedHashMap<String, Double> myMap追加した があるとしましょう。pair1pair2pair3

そして今、私は次のループを行います:

for (Double currDouble : myMap.getValues()) {...}

ループ内の最初のDoubleオブジェクトは の 1 つpair1でしょうか? そして2番目のpair2?それともそうである必要はありませんか?

似たようなプログラムで確認したところ、掲載順は守られているようですが、常にそうなるのでしょうか?

4

3 に答える 3

2

デフォルトではLinkedHashMap、 は挿入順序を保持します。ただし、混乱を招く可能性のあるアクセス順序に切り替えるオプションがあります。

したがって、あなたの質問に答えるには、はい、最初Doubleは from からpair1、2 番目は fromなどになります。アクセス順序をpair2設定しなかったという事実を考えると。LinkedHashMap

それでも動作がわからない場合はLinkedHashMap、質問で説明したように、大量のデータを に追加していつでもテストし、それを繰り返すことができます。挿入順序 (または設定されている場合はアクセス順序) が保持されることがわかります。

于 2016-07-31T20:23:00.880 に答える
2

はい!

LinkedHashMap ドキュメントの最初の文から: ... 予測可能な反復順序での Map インターフェースの実装 .... 通常、キーがマップに挿入された順序 (挿入順序) です。

キーが再挿入された場合 (おそらく別の値で)、元の順序は変更されません。

于 2016-07-31T20:53:58.143 に答える
0

Map を実装し、挿入順序を保持する Java クラスを参照してください。

あなたはただ行うことができます:

for (String key : myMap.getKeys())
  Double d = myMap.get(key);
于 2016-07-31T20:26:41.467 に答える