一、遍历map
publicstaticvoidmain(String[] args){ Map<String, String> map=newHashMap<String, String>(); map.put("1","value1"); map.put("2","value2"); map.put("3","value3");//第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历key和value:");for(String key: map.keySet()){ System.out.println("key= "+ key+" and value= "+ map.get(key));}//第二种 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); Iterator<Map.Entry<String, String>> it= map.entrySet().iterator();while(it.hasNext()){ Map.Entry<String, String> entry= it.next(); System.out.println("key= "+ entry.getKey()+" and value= "+ entry.getValue());}//第三种:推荐,尤其是容量大时 System.out.println("通过Map.entrySet遍历key和value");for(Map.Entry<String, String> entry: map.entrySet()){ System.out.println("key= "+ entry.getKey()+" and value= "+ entry.getValue());}//第四种 System.out.println("通过Map.values()遍历所有的value,但不能遍历key");for(String v: map.values()){ System.out.println("value= "+ v);}}
二、按照值进行降序排序
public<K, VextendsComparable<?super V>> Map<K, V>sortByValue(Map<K, V> map){ Map<K, V> result=newLinkedHashMap<>(); map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByValue().reversed()).forEachOrdered(e-> result.put(e.getKey(), e.getValue()));return result;}
三、按照键进行降序排序
public<KextendsComparable<?super K>, V> Map<K, V>sortByKey(Map<K, V> map){ Map<K, V> result=newLinkedHashMap<>(); map.entrySet().stream().sorted(Map.Entry.<K, V>comparingByKey().reversed()).forEachOrdered(e-> result.put(e.getKey(), e.getValue()));return result;}
注:如果要进行升序排序,只需要讲reversed()去掉即可。