我正在创建一个新的Map并将字符串推入其中(没什么大不了的)-但是我注意到随着Map的增长,字符串正在重新排序。是否可以停止这种重新排序,以便地图中的项目保持其放入的顺序?
Map<String,String> x = new HashMap<String, String>(); x.put("a","b"); x.put("a","c"); x.put("a","d"); x.put("1","2"); x.put("1","3"); x.put("1","4"); //this shows them out of order sadly... for (Map.Entry<String, String> entry : x.entrySet()) { System.out.println("IN THIS ORDER ... " + entry.getValue()); }
如果您关心订单,可以使用SortedMap。实现该接口的实际类(至少在大多数情况下是)TreeMap。或者,LinkedHashMap在仍然使用基于哈希表的容器的同时,也维持其顺序。
SortedMap
TreeMap
LinkedHashMap