HashMapは自動的にkey値で並べ替えられます。
2302 ワード
HashMapは自動的にkey値で並べ替えられます。
今日はプロジェクトをしていますが、HashMapは自動的にソートする機能があることが分かりました。しかし、私が入ってきたのはListで、しかも順序が決まっているListです。だから、mapに変換する時に順番が狂ってしまいました。
今日はプロジェクトをしていますが、HashMapは自動的にソートする機能があることが分かりました。しかし、私が入ってきたのはListで、しかも順序が決まっているListです。だから、mapに変換する時に順番が狂ってしまいました。
private static Map translateMap(List list){
Map map = new HashMap();
for(TestPojo t:list){
map.put(t.getKey(), t.getVal());
}
return map;
}
そして、主な方法のテストです。 public static void main(String[] args){
List list = new ArrayList();
TestPojo tp1 = new TestPojo();
tp1.setKey(23);
tp1.setVal("test1");
list.add(tp1);
TestPojo tp2 = new TestPojo();
tp2.setKey(46);
tp2.setVal("test2");
list.add(tp2);
TestPojo tp3 = new TestPojo();
tp3.setKey(2);
tp3.setVal("test3");
list.add(tp3);
Map hmap = translateMap(list);
Iterator> it = hmap.entrySet().iterator();
while(it.hasNext()){
Entry et = it.next();
System.out.println(et.getKey()+"===="+et.getValue());
}
}
この結果は
2====test3
23====test1
46====test2
---- ----
23====test1
46====test2
2====test3
この二つは私の並べたシーケンス(線を分割したもの)と違っています。同じ問題があって解決方法がありますか?教えてください。