首页IT科技map集合遍历几种方式(Map集合的遍历方式(3种))

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

时间2025-09-18 16:49:17分类IT科技浏览5101
导读:第一种根据键找值 先获取Map集合的全部键的Set集合...

第一种根据键找值

先获取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); }); } }

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python docx 字体颜色(python怎么设置字体颜色) 项目管理收集需求和信息的工具(收集项目中用到的工具函数)