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

2022年6月11日09:05:48

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

  • 作者:AI_Frank
  • 原文链接:https://blog.csdn.net/qq_30653631/article/details/118461361
    更新时间:2022年6月11日09:05:48 ,共 1423 字。