前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在使用Map的时候,怎么保证插入数据的数据,就是map的put顺序呢 ?

在使用Map的时候,怎么保证插入数据的数据,就是map的put顺序呢 ?

原创
作者头像
凯哥Java
发布2023-12-20 13:14:40
1620
发布2023-12-20 13:14:40
举报
文章被收录于专栏:凯哥Java凯哥Java

代码如下:

Map<String, String> bulidingMaps = new HashMap<>();

bulidingMaps.put("build1", "一号楼");

bulidingMaps.put("build2", "二号楼");

bulidingMaps.put("build3", "三号楼");

bulidingMaps.put("build4", "四号楼");

bulidingMaps.put("build5", "五号楼");

bulidingMaps.put("build6", "六号楼");

bulidingMaps.put("build7", "七号楼");

bulidingMaps.put("build8", "八号楼");

bulidingMaps.put("build9", "九号楼");

bulidingMaps.put("build10", "十号楼");

bulidingMaps.put("build11", "十一号楼");

bulidingMaps.put("build12", "十二号楼");

bulidingMaps.put("cloister", "回廊");

上面代码,怎么保证入库后顺序就是put到map的顺序?

可能有人会说使用treemap不就可以了吗?

那么我们将HashMap缓存TreeMap,发现,依然是不能按照我们put进去的顺序入库的。那么怎么解决呢 ?

在Java中,Map接口的实现类并不能保证元素的顺序。但是可以通过使用TreeMap来实现按照插入顺序排序的Map。 TreeMap是基于红黑树实现的,可以按照元素的自然顺序或者自定义的顺序进行排序。如果想要保持插入顺序,则可以使用以下代码:

Map<String, String> bulidingMaps = new LinkedHashMap<>();

bulidingMaps.put("build1", "一号楼");

bulidingMaps.put("build2", "二号楼");

bulidingMaps.put("build3", "三号楼");

bulidingMaps.put("build4", "四号楼");

bulidingMaps.put("build5", "五号楼");

bulidingMaps.put("build6", "六号楼");

bulidingMaps.put("build7", "七号楼");

bulidingMaps.put("build8", "八号楼");

bulidingMaps.put("build9", "九号楼");

bulidingMaps.put("build10", "十号楼");

bulidingMaps.put("build11", "十一号楼");

bulidingMaps.put("build12", "十二号楼");

bulidingMaps.put("cloister", "回廊");

这里使用LinkedHashMap代替了TreeMap,LinkedHashMap可以保持元素的插入顺序。 这样,插入到Map中的顺序将会保持不变。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档