java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java中HashMap的元素遍历顺序

Java中HashMap的元素遍历顺序问题及处理

作者:五月天的尾巴

文章总结了HashMap、LinkedHashMap和TreeMap在遍历顺序上的区别,HashMap不保证遍历顺序,LinkedHashMap保证插入顺序,而TreeMap保证键的顺序,理解这些特性有助于在编程中选择合适的Map实现

一、前言

在项目中遍历HashMap集合时,发现遍历entrySet()的顺序与map集合中的顺序不一致,特写此篇文章记录一下。

HashMap在存储时的顺序是无序的这个我是知道的,但是本来以为存储之后,遍历的时候是按照HashMap集合中的顺序遍历的,结果发现遍历的时候与集合中的顺序也不一致。

Map<String,String> map = new HashMap<>();
// map.put()  .........

for(Map.Entry<String,String> item:map.entrySet()){
    System.out.println(item.getKey()+"  "+item.getValue());
}

如上图:map.entrySet()遍历后的顺序有可能会乱序,与HashMap存储的顺序不一致。

二、原理解释

在Java中,Map 接口的实现(如 HashMap,LinkedHashMap,TreeMap 等)并不保证遍历 keySet() 或 entrySet() 时的顺序。但是,某些特定的 Map 实现确实提供了特定的遍历顺序。

三、总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文