代码如下:
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中的顺序将会保持不变。