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

发布时间:2023年12月20日

代码如下:

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中的顺序将会保持不变。

文章来源:https://blog.csdn.net/kaizi_1992/article/details/135105539
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。