Map集合遍历方式

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集合,然后提取键以及提取值
    Map集合遍历方式_第1张图片
/**
         * 使用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() {
//            @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);
        });
    }

你可能感兴趣的:(从0学习java,java,开发语言)