首页 > 其他 > 详细

HashMap添加顺序和取值顺序不一致

时间:2019-12-09 17:46:34      阅读:131      评论:0      收藏:0      [点我收藏+]
代码:
@Test
public void map(){
Map<String,Integer> map = new HashMap<>();
map.put("2",22);
map.put("3",12);
map.put("王五",23);
map.put("1",22);
Set<Map.Entry<String, Integer>> entries = map.entrySet();

for (Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();iterator.hasNext();){
Map.Entry<String, Integer> next = iterator.next();
System.out.println(next.getKey()+"=="+next.getValue());
}
}
结果:

1==22
2==22
3==12
王五==23

hashmap底层使用的是数组加链表,所以当你添加数据后会把key的值放在通过哈希算法散列后的对象的数组坐标上,所以取得的值是按哈希表来取的,所以和放入的顺序无关。要是想有序的取值,可以把

Map<String,Integer> map = new HashMap<>();中HashMap改为LinkedHashMap

HashMap添加顺序和取值顺序不一致

原文:https://www.cnblogs.com/B-U-G/p/12012284.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!