神中神之【Map】遍历操作

@


前言

首先插入几个值方便操作

 Map<Integer,String> map=new HashMap<>();
        map.put(1,"A");
        map.put(2,"B");
        map.put(3,"C");
//        System.out.println(map); ->{1=A, 2=B, 3=C}调用tostring
//        想得到具体实参要用以下操作

Key遍历

key遍历顾名思义就是查找map中key的值

  1. ForEach遍历
    要知道Map是不继承Collection的,严格意义来说他只是一个映射不能算作一个集合,所以无法用Foreach方法,但是为了方便Map内部的Foreach方法是应用了entrySet的(我们稍后再讲),而entrySet方法返回的是一个Set集合,所以能遍历

    总的来说,可以直接使用Foreach方法,但底层不是Map在用,而是Set在用
    不多说直接上代码


//        1.(Foreach遍历方法查找key和value)
         map.forEach((key,value)-> System.out.println(key));
         map.forEach((key,value)-> System.out.println(key+"->"+value));
  1. 增强for循环遍历(只读,不能进行remove等操作)
//        1.KeySet遍历(增强for循环遍历)
//
        Set<Integer> set = map.keySet();
        for(int key:set){
            System.out.println(key);
        }//增强for循环迭代

Value遍历

//        2.values
      for(String value:map.values()){
          System.out.println(value);
      }

entrySet遍历 (最常用)

这里map.entrySet()返回的是Set集合,但是集合内部类型是Map.Entry接口的实现方法,对于每一个遍历的对象都是Entry类型的,而该对象有getKey方法和getvalue方法,极大便利了获取 map值操作

  for(Map.Entry<Integer,String> entry: map.entrySet()){
                System.out.println(entry.getKey()+"->"+entry.getValue());
        }//同样只读

迭代 即可查找又可修改(神中神)

        Iterator<Map.Entry<Integer, String>> iterator=map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<Integer,String> entry=iterator.next();
            System.out.println(entry.getKey()+"->"+entry.getValue());
            iterator.remove();
        }
posted @ 2024-02-28 22:22  笠大  阅读(5)  评论(0编辑  收藏  举报