最近在项目中插入到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>>();
就没问题了,每次拿到的数据跟放进去的是一样的顺序。