結果セットをマップのマップに変換する必要があります。マップのリストを使用しない理由は、特定の行を取得するためにリスト全体を反復処理したくないためです。
私が今直面している問題は、インデックスが16より大きい場合、HashMapのエントリが順序付けられなくなることです。
今、私は簡単なテストのために以下を試しました:
public static void main(String[] args) {
Map<Integer, String> map = new HashMap<Integer, String>();
//creating 20 rows from 1 to 20
for (int i = 1; i <= 20; i++){
map.put(i, "ROW "+i);
}
//returning all the rows the map contains. Look at position 16.
for(int key : map.keySet()){
System.out.println(key);
}
}
そして、出力は次のとおりです(位置16から20を見てください。それらは完全に順序付けられていません):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 17 16 19 18 20
なぜそうなるのか説明していただければ幸いです。
ところで:
私はこのようなものを使用することはできません:
for (int i = 0; i < map.size; i++){
map.get(i) //...and so on
}
インデックスが存在するかどうかわからないからです。200から800までのインデックスが存在しない可能性があります。したがって、マップの既存のエントリを反復処理するだけの方がよいでしょう。