collection集合的遍历方式

145 阅读2分钟

Collection集合遍历的方式有三种:

  1. 迭代器
  2. foreach/增强for循环
  3. lambda表达式

一、迭代器遍历

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

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

1.创建迭代器

Iterator<T> it = list.iterator();

2.迭代器在遍历集合时候不依赖索引

3.迭代器需要掌握的三个方法

  • hasNext();  //返回布尔类型,判断当前迭代器指向的位置是否为空。
  • next(); //返回迭代器当前位置的数据并指向下一个位置。
  • remove();//从迭代器指向的collection中移除迭代器返回的最后一个元素。

4.迭代器的三个细节

  • 如果当前位置没有元素还要强行获取,会报NoSuchElementException错误
  • 迭代器遍历完毕指针不会复位,想要重新遍历需要重新创建一个新的迭代器
  • 一个迭代器遍历的循环中只能用一次next()方法。

二、增强for遍历

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

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

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

4.底层也是迭代器,为了简化迭代的代码书写而出现。

5.所有单列集合和数组才能用增强for遍历。

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

三、Lambda表达式遍历

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

List.forEach(new Consumer<T> (){
       @Override
       Public void accept(T s){
              Sout(s);
       }
});
public static void main(String[] args) {
    // 创建String类型的集合
    Collection<String> list = new ArrayList<String>();
    list.add("aaa");
    list.add("bbb");
    list.add("aaa");

    // foreach方法结合Lambda表达式
    list.forEach(s -> System.out.println(s));
}