HashMapは自動的にkey値で並べ替えられます。

2302 ワード

HashMapは自動的にkey値で並べ替えられます。
今日はプロジェクトをしていますが、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
この二つは私の並べたシーケンス(線を分割したもの)と違っています。同じ問題があって解決方法がありますか?教えてください。