0


Map集合的遍历方式(3种)

第一种根据键找值

先获取Map集合的全部键的Set集合

遍历键的Set集合,然后通过键提取对应的值

package DomeMap;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Test4 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<String, Integer> buy=new HashMap<>();
        buy.put("苹果手机", 2);//添加键值对
        buy.put("智能手表", 1);
        buy.put("java书", 1);
        buy.put("c语言书", 1);
        buy.put("西瓜", 2);
        
        //Map集合的遍历
       //先把所有键取出来
        Set<String> s1=buy.keySet();
        //开始根据键找值
        for (String key : s1) {
            Integer value=buy.get(key);
            System.out.println(key+"->>>>"+value);    
        }

    }

}

第二种方式

使用foreach遍历Map集合发现Map集合的键值对元素直接是没有类型的。所以不能直接用foreach遍历集合

可以通过调用Map的方法:entrySet把Map结合转化成Set集合的形式

打包后在内部会以键值对对象的形式存储{(key,value),key,value),key,value),key,value)}

更加的符合面向对象

Set<Map.Entry<String,Integer>> 就可以看成键值对类型遍历了

public class Test5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Map<String, Integer> buy=new HashMap<>();
        buy.put("苹果手机", 2);//添加键值对
        buy.put("智能手表", 1);
        buy.put("java书", 1);
        buy.put("c语言书", 1);
        buy.put("西瓜", 2);
        
        Set<Map.Entry<String,Integer>> en=buy.entrySet();
        for (Map.Entry<String, Integer> entry : en) {
            String key=entry.getKey();
            Integer value=entry.getValue();
            System.out.println(key+"->>>"+value);
            
        }

    }

}

第三种方式:Lamubda表达式(最简单)

得力于JDK8开始的新技术Lamubda表达式,提供了一种更简单,更直接的遍历集合的方式

package DomeMap;

import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;

public class Lmtest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        Map<String, Integer> buy=new HashMap<>();
        buy.put("苹果手机", 2);//添加键值对
        buy.put("智能手表", 1);
        buy.put("java书", 1);
        buy.put("c语言书", 1);
        buy.put("西瓜", 2);
        
        
        //Lamubda表达式遍历
        buy.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String t, Integer u) {
                System.out.println(t+"->>>"+u);
                
            }
        });
        
    }

}

Lamubda还可以继续化简

化简的规则为

参数类型可以省略不写

如果只有一个参数,参数类型可以省略,同时(也可以省略)

如果Lamubda表达式的方法体代码只有一行代码。可以省略大括号不写,同时省略分号

如果Lamubda表达式的方法体只有一行代码。可以省略大括号不写。此时,如果这行代码是return语句,必须省略return不写,同时也必须省省略分号不写

package DomeMap;

import java.util.HashMap;
import java.util.Map;
import java.util.function.BiConsumer;

public class Lmtest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        // TODO Auto-generated method stub
        Map<String, Integer> buy=new HashMap<>();
        buy.put("苹果手机", 2);//添加键值对
        buy.put("智能手表", 1);
        buy.put("java书", 1);
        buy.put("c语言书", 1);
        buy.put("西瓜", 2);
        
        
        //Lamubda表达式遍历
        buy.forEach((t,u)-> {
                System.out.println(t+"->>>"+u);
        });
        

    }

}
标签: java 前端 大数据

本文转载自: https://blog.csdn.net/m0_64365315/article/details/125661067
版权归原作者 小萌新上大分 所有, 如有侵权,请联系我们删除。

“Map集合的遍历方式(3种)”的评论:

还没有评论