TreeMap默认按照key得值升序排序
让TreeMap按照key值降序排列
TreeMap<String,String> map = new TreeMap<>(new comparator<String>(){ public int compare(String o1,String o2){ return o2.compareTo(o2); } });
让TreeMap按照value值降序排列
TreeMap<String, String> map = new TreeMap<>(); List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>(map.entrySet());; Collections.sort(list,new Comparator<Map.Entry<String, String>>() { @Override public int compare(Entry<String, String> o1, Entry<String, String> o2) { return o2.getValue().compareTo(o1.getValue()); } });
遍历HashMap的三种方式
Map<Integer, Integer> hashmap = new HashMap<String, String>(); //方法一:通过 Map.keySet 遍历 key 和 value,多了个 getValue 的过程 for (String key : hashMap.keySet()) { System.out.println("Key: " + key + " Value: " + hashMap.get(key)); } //方法二:通过 Map.values() 遍历所有的 value,但不能遍历 key for (String v : hashMap.values()) { System.out.println("The value is " + v); } //方法三:通过 Map.entrySet 使用 iterator 遍历 key 和 value,而 iterator 又是要取出 entrySet的,相当于又多了一步。但其最大的特点是适用于一边遍历一边删除的场景。不需要用一个 set 先保存下来再删除了。 Iterator iterator = hashMap.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator.next(); System.out.println("Key: " + entry.getKey() + " Value: " + entry.getValue()); // 遍历完成后马上进行删除 iterator.remove(); } // 方法四:通过 entrySet 进行遍历,直接遍历出key和value。对于 size 比较大的情况下,又需要全部遍历的时候,效率是最高的。 for (Map.Entry<String, String> entry : entries) { System.out.println("testHashMap: key = " + entry.getKey() + ";value = " + entry.getValue()); }