List与hashMap遍历的乱序问题
现有类 :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,输出的值的顺序为什么会不一样呢? --------------------编程问答-------------------- hashMap的每一个元素的存放位置是根据hashcode的 --------------------编程问答-------------------- hashMap的默认顺序是根据hashcode排列的
list是根据add的顺序
SortedMap可用于排列 --------------------编程问答-------------------- 真该回去看看数据结构了,连hashmap为什么叫hashmap都忘了,该死!谢谢了! --------------------编程问答--------------------
正解 --------------------编程问答-------------------- 直接用LinkedHashMap把,他会记录你插入元素的顺序,
用迭代器遍历时会以你插入元素的顺序进行遍历 --------------------编程问答-------------------- list 好像可以吧 --------------------编程问答-------------------- LZ结贴吧
补充:Java , Java SE