Collection集合的遍历方式

Collection集合的遍历方式

方式一:迭代器

  1. 遍历就是一个一个的把容器中的元素访问一遍。

  2. 迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式。

  3. Collection集合获取迭代器

  4. lterator中的常用方法

  5. 迭代器执行流程

     

     

  6.  

    public class CollectionDemo01 {
      public static void main(String[] args) {
          Collection<String> lists = new ArrayList<>();
          lists.add("网文");
          lists.add("王文");
          lists.add("网军");
          lists.add("网文军");
          System.out.println(lists);
          //[网文,王文,网军,网文军

          //1、得到当前集合的迭代器对象
          Iterator<String> it = lists.iterator();
    //       String ele = it.next();
    //       System.out.println(ele);
    //       System.out.println(it.next());
    //       System.out.println(it.next());
    //       System.out.println(it.next());
    //       System.out.println(it.next()); //NoSuchElementException 出现无此元素异常的错误
          //2、定义while循环
          while(it.hasNext()){
              String ele = it.next();
              System.out.println(ele);
          }
    1. 迭代器的默认位置在哪里?

      Iterator<E> iterator(): 得到迭代器对象,默认指向当前集合的索引0。

    2. 迭代器如果取元素越界会出现什么问题?

      会出现NoSuchElementException异常。

       

方式二:foreach/增强for循环

  1. 增强for循环:既可以遍历集合也可以遍历数组

  2. 它是]DK5之后出现的,其内部原理是一个lterator迭代器,遍历集合相当于是迭代器的简化写法

  3. 实现Iterable接口的类才可以使用迭代器和增强for,Collection接口已经实现了Iterable接口。

  4. 格式:

    for(元素数据类型 变量名 :数组或者Collection集合){
    举例说明
    //在此处使用变量即可,该变量就是元素
    }

     

  5. 举例说明:

    Collection<String> list = new ArrayList<>();
    for(String ele : list) !
    System.outprintln(ele);
    }
  6. 增强for修改变量

     

     

  7. 增强for可以遍历哪些容器?

    1. 既可以遍历集合也可以遍历数组。

  1. 增强for的关键是记住它的遍历格式

    for(元素数据类型 变量名: 数组或者Collection集合){
    //在此处使用变量即可,该变量就是元素
    }
  2. 代码:


          double[] scores = {100 , 99.5 , 59.5};
          for (double score : scores) {
              System.out.println(score);
    //           if(score == 59.5 ){
    //               score = 100.0;
    //           } //修改不了,因为score是拷贝集合中的元素,改score没用,集合中元素不变
          }
          System.out.println(Arrays.toString(scores));

     

方式三:lambda表达式

  1. lambda表达式遍历集合

     

  2. 代码:

     Collection<String> lists = new ArrayList<>();
          lists.add("网文");
          lists.add("王文");
          lists.add("网军");
          lists.add("网文军");
          //[网文,王文,网军,网文军]
          // ele

    //       lists.forEach(new Consumer<String>() {
    //           @Override
    //           public void accept(String s) {
    //               System.out.println(s);
    //           }
    //       });

    //       lists.forEach(s-> {
    //               System.out.println(s);
    //       });

    //       lists.forEach(s-> System.out.println(s) );

          lists.forEach(System.out::println );
posted @   镰刀战士  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示