Java基础——Collection集合的遍历方式

1.迭代器

  • 遍历就是一个一个的把容器中的元素访问一边。
  • 迭代器在Java中的代表是Iterator,迭代器是集合的专用遍历方式。

 (1)Collection集合获取迭代器

方法名称 说明
Iterator<E> iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引

 (2)Iterator中的常用方法

方法名称 说明
boolean hasNext() 询问当前位置是否有元素存在,存在返回true,不存在返回false
E next() 获取当前位置的元素,并同时将迭代器对象移向下一个位置,注意防止取出越界出现NoSuchElementException异常
        /**
         * 学习Collection集合的遍历方式——迭代器
         */
        //1.得到当前集合的迭代器对象
        Iterator<String> it = lists.iterator();
        //2.定义while循环遍历,条件it.hasnext()判断是否存在下一个元素
        while (it.hasNext()){
            String ele = it.next();//获取当前位置的元素,同时迭代器移到下一个位置
            System.out.println(ele);
        }

2.foreach/增强for循环

  • 增强for循环:既可以遍历集合也可以遍历数组。
  • 它是JDK5之后出现的,其内部原理是一个Iterator迭代器,遍历集合相当于是迭代器的简化写法。
  • 实现Iteratable接口的类才可以使用迭代器和增强for,Collection接口已经实现了Iterable接口。

格式:

for(元素数据类型 变量名 : 数组或者Collection集合){

        //在此处使用变量即可,该变量就是元素

eg:

Collection<String> list = new ArrayList<>();

...

for(String ele : list){

        System.out.println(ele);

}

3.lambda表达式

  • 得益于JDK8开始的新技术Lambda表达式,提供了一种更简单,更直接的遍历集合的方式。

(1)Collection结合Lambda遍历的API

方法名称

说明

default void forEach(Consumer<? super T> action): 结合Lambda遍历集合

 Collection<String> lists = new ArrayList<>();

...

lists.forEach(new Consumer<String>(){

        @Override

        public void accept(String s){

        }

});

//简写

lists.forEach(s -> {

        System.out.println(s);

});

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

猜你喜欢

转载自blog.csdn.net/weixin_61275790/article/details/130003111