现有类 :class T{ Long id,String name, ...}get、set、方法以添加
我从数据库中查询出一个结果集是List<T>的list,然后for循环将list放入一个hashMap中map, Map<Long, T>
for(int i=0,i<list.size();i++){
    map.put(list.get(i).getId(),list.get(i));
}
map采用iterator遍历
然后分别遍历输出list和map,输出的值的顺序为什么会不一样呢?

解决方案 »

  1.   

    hashMap的每一个元素的存放位置是根据hashcode的
      

  2.   

    hashMap的默认顺序是根据hashcode排列的
    list是根据add的顺序
    SortedMap可用于排列
      

  3.   

    真该回去看看数据结构了,连hashmap为什么叫hashmap都忘了,该死!谢谢了!
      

  4.   

    直接用LinkedHashMap把,他会记录你插入元素的顺序,
    用迭代器遍历时会以你插入元素的顺序进行遍历