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


代码:
@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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM