java遍历map、map键排序、值排序

一、遍历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()去掉即可。