3

重複の可能性:
Java の双方向マップ?

Mapキーが数値ではなく順序付けされていない場合、インデックスでキーを取得するにはどうすればよいですか?

例えば ​​:

Map<String, Integer> test = new TreeMap<String, Integer>();
test.put("a", 1);
test.put("b", 2);
test.put("z", 3);
test.put("m", 4);

zインデックス 2 を持っているかa、インデックス 0 を持っているかを取得したい。

それを取得するためにインクリメントを使用してダーティループを実行できることは知っていますが、それを行う別のスマートな方法はありますか?

4

1 に答える 1

1

これを少し混乱させるのは、アイテムが追加された順序に基づいてインデックスを参照しているのか、それともキーの自然な順序 (例: アルファベット順) に基づいてインデックスを参照しているのかです。

map.keySet() を使用して多くのキーのリストを取得できますが、キーセットが追加した順序になるという保証はありません

データを何らかの順序で保持したい場合 (例: アルファベット順)、HashMap の代わりに TreeMap を使用できます。他の順序付け方法を希望する場合は、独自のコンパレータを実装できます

于 2012-12-20T23:50:42.177 に答える