初始化一個map
Map<String, String> map = new HashMap<String, String>();map.put("1", "hell");map.put("2", "hello");map.put("3", "hel");map.put("4", "hello");1、第一種方式,普遍使用
Set<String> keySet = map.keySet();for (String key : keySet) { System.out.Set<Map.Entry<String,String>> entySet = map.entrySet();for (Map.Entry<String, String> entry : entySet) {System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());}實驗發現輸出的順序是亂的,排個序吧
1、按照key值排序
首先寫個排序類
private static class KeyComparator implements Comparator<Map.Entry<String, String>> { public int compare(Map.Entry<String, String> m, Map.Entry<String, String> n) { return m.getKey().compareTo(n.getKey()); }}把數據放在list里邊才可以使用
List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>();list.addAll(map.entrySet());KeyComparator kc = new KeyComparator();Collections.sort(list, kc);for (Iterator<Map.Entry<String, String>> it = list.iterator(); it .hasNext();) { System.out.println(it.next());}2、按照Value值排序
private static class ValueComparator implements Comparator<Map.Entry<String, String>> { public int compare(Map.Entry<String, String> m, Map.Entry<String, String> n) { return m.getValue().compareTo(n.getValue()); }}排序輸出
list.clear();list.addAll(map.entrySet());ValueComparator vc = new ValueComparator();Collections.sort(list, vc);for (Iterator<Map.Entry<String, String>> it = list.iterator(); it.hasNext();) { System.out.println(it.next());}Tips: 如有錯誤請指出,我會及時修改
新聞熱點
疑難解答