初始化一个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.PRintln("key= " + key + " and value= " + map.get(key));}
2、第二种方式,容量大时推荐使用
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: 如有错误请指出,我会及时修改
新闻热点
疑难解答