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

  • 作者: 凯哥Java(公众号:凯哥Java)
  • 工作小总结
  • 时间:2023-07-17 16:44
  • 1739人已阅读
简介 代码如下:  Map<String, String> bulidingMaps = new HashMap<>();        bulidingMaps.put("build1", "

🔔🔔🔔好消息!好消息!🔔🔔🔔

有需要的朋友👉:联系凯哥 微信号 kaigejava2022

c72d51e088adb26b6099d9e32ced9e81.png


代码如下:

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

a5194b1a4bae598089d4bd73e5dde6bc.png

TopTop