在使用Map的时候,怎么保证插入数据的数据,就是map的put顺序呢 ?
- 工作小总结
- 时间:2023-07-17 16:44
- 1739人已阅读
简介
代码如下: Map<String, String> bulidingMaps = new HashMap<>(); bulidingMaps.put("build1", "
🔔🔔🔔好消息!好消息!🔔🔔🔔
有需要的朋友👉:联系凯哥
代码如下:
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中的顺序将会保持不变。