Map集合遍历方式一:键找值
- 先获取Map集合的全部键的Set集合 //Set key=map.keySet();
- 遍历键的Set集合,然后通过键提取对应值map.getValue()
Set<String> keys=maps.keySet();for(String key1:keys){int valu1e=maps.get(key1);System.out.println(key1+"====>"+valu1e);}
// 鸿星尔克====>2
// 数据结构====>2
Map集合遍历方式二:键值对流程
- 先把Map集合转换成Set集合,Set集合中每个元素都是键值对实体类型了
- 遍历Set集合,然后提取键以及提取值
/*** 使用foreach遍历map集合,发现Map集合的键值对元素直接是没有类型的,所以不可以直接foreach遍历集合* 可以通过条用Map的方法entrySet把Map集合S转换成Set集合形式**///1.把Map集合转换成Set集合Set<Map.Entry<String,Integer>> entries=maps.entrySet();//2.for开始遍历for(Map.Entry<String,Integer> entry:entries){String key=entry.getKey();int value=entry.getValue();System.out.println(key+"=====>"+value);}
Map集合的遍历方式三:Lambda
//Map集合的遍历方式:Lambda
// maps.forEach(new BiConsumer<String, Integer>() {
// @Override
// public void accept(String key, Integer value) {
// System.out.println(key+"--->"+value);
// }
// });maps.forEach((k,v)->{System.out.println(k+"--->"+v);});
案例
80个学生每个人只能选择{A,B,C,D}四个地点的其中一个地点游玩,现在整理出一份表格显示每个地点游玩的人数
public static void main(String[] args) {//1.将学生的选择存入字符串中String[] address={"A","B","C","D"};StringBuilder select=new StringBuilder();Random r=new Random();for (int i = 0; i < 80; i++) {select.append(address[r.nextInt(address.length)]);}System.out.println(select);//2.去除字符串中的字符,存入到Map集合中Map<Character,Integer> map=new HashMap<>();//遍历数据for (int i = 0; i < select.length(); i++) {char ch= select.charAt(i);if(map.containsKey(ch)){map.put(ch,map.get(ch)+1);}else{map.put(ch,1);}}map.forEach((k,v)->{System.out.println(k+"----"+v);});}