关于Map数据插入读取的问题

      最近在项目中插入到Map中的数据不按照顺序读出来。通过查看Java帮助文档,LinkedHashMap 可以保持插入时的顺序。

LinkedHashMap 中的accessOrder属性负责Map中数据的顺序。 accessOrder为true时,Map中的数据按照访问顺序排序, false时按照插入顺序排序,默认LinkedHashMap 按插入顺序排序。详情请参阅LinkedHashMap 注释。

     开始时这样的:Map<Mother, List<Chilldren>> motherChild = new HashMap<Mother, List<Chilldren>>();

     插入数据:

---新建流程
---代办事宜
---流程监控
---流程查询
---流程配置
-----定义表单
-----定义流程
-----流程分类
---已办事宜
---办结事宜
---流程委托
---我的请求

    遍历得到如下:

--流程配置
----定义表单
----定义流程
----流程分类
--流程查询
--我的请求
--办结事宜
--已办事宜
--流程委托
--流程监控
--代办事宜

--新建流程

遍历代码如下:

for(Entry<Mother,List<Chilldren>> entry:motherChild1.entrySet()){
   System.out.println("--"+entry.getKey().getMotherName());
   for(Chilldren ch:entry.getValue()){
    System.out.println("----"+ch.getChildName());
   }
  }

而且每次刷新都不一样,后来改成这样:

  Map<Mother, List<Chilldren>> motherChild = new LinkedHashMap<Mother, List<Chilldren>>();

  就没问题了,每次拿到的数据跟放进去的是一样的顺序。

 


 

你可能感兴趣的:(java,java,java,map,遍历,map)