HashMap对key或value进行排序--Java--小白必懂2
- HashMap对key进行排序
public static void main (String[]args){ HashMap<String, Integer> map = new HashMap<>(); map.put("abd", 25); map.put("abe", 85); map.put("abf", 85); //-----------对key进行排序 // 1---将hashmap的key转成数组,使用Arrays.sort()方法进行排序 Set set = map.keySet(); Object[] str = set.toArray(); Arrays.sort(str); for (int i = 0; i < str.length; i++) { System.out.println(str[i] + "-----" + map.get(str[i])); } // 1.1---使用Collections.sort()方法进行排序。该方法可以对list进行排序 Collection<String> keys = map.keySet(); List<String> list = new ArrayList<>(keys); Collections.sort(list); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i) + "-----" + map.get(list.get(i))); } }
- HashMap对value进行排序
//-----------对value进行排序共两步:1、转成list,第二使用List.sort(comparator)或Collections.sort(list,comparator)排序 // 虽然该方法能对key排序但是没法遍历key的值,所以一般是对value排序使用 public static List sortValueMap(HashMap<String,Integer> map){ // 1、转成list List<Map.Entry<String,Integer>>lst=new ArrayList<>(map.entrySet()); // 2.1、排序Collections.sort(list,comparator) Collections.sort(lst, new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { // return o2.getValue().compareTo(o1.getValue()); // return o2.getValue().compareTo(o1.getValue());// 对value排序 return o1.getKey().compareTo(o2.getKey()); // 对key排序 } }); /* A.compareTo(B), 返回值是A-B, int值,共三种取值,正,负,零 负整数:当前对象的值(A) < 被比较对象的值(B) , 位置排在前 零:当前对象的值 = 比较对象的值 , 位置不变 正整数:当前对象的值(A) > 被比较对象的值(B) , 位置排在后 //2.2 List.sort(comparator) lst.sort(new Comparator<Map.Entry<String, Integer>>() { @Override public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { return o2.getValue().compareTo(o1.getValue()); } }); */ return lst; }
本文来自博客园,作者:{Justin_Hu},转载请注明原文链接:{https://www.cnblogs.com/gchenghu/}