读书人

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

发布时间: 2012-11-23 00:03:43 作者: rapoo

关于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>>();

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


读书人网 >编程

热点推荐