> 文章列表 > 迭代器遍历,增强for遍历

迭代器遍历,增强for遍历

迭代器遍历,增强for遍历

目录

一.迭代遍历

二.增强for遍历

三.Lambda表达式遍历


一.迭代器遍历

迭代器遍历:迭代器在Java中的类是Ilterator,迭代器是集合专用的遍历方式;

创建指针,判断是否有元素,获取元素,移动指针;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;public class CollectionDemo2 {public static void main(String[] args) {//1.创建集合并添加元素Collection<String> coll=new ArrayList<>();coll.add("aaa");coll.add("bbb");coll.add("ccc");coll.add("ddd");//2.获取迭代器对象//迭代器就好比是一个箭头,默认指向集合的0索引;Iterator<String> it= coll.iterator();//3.利用循环不断地去获取集合的每一个元素while(it.hasNext()){while(it.hasNext()){String str=it.next();System.out.println(str);}}}
}

注意:

1.若当前位置没有元素,还要强行获取,报错NoSuchElementException;

System.out.println(it.next());

2.迭代器遍历完毕,指针不会复位;

System.out.println(it.hasNext());

3.循环只能用一次next方法;

//打印两遍和打印一遍输出结果一样;

4.迭代器遍历时,不能用集合的方法进行添加或者删除;

二.增强for遍历

  • 增强for的底层就是迭代器,为了简化迭代器的代码书写的;
  • 它是JDL5之后出现的,其内部原理就是一个Iterator迭代器;
  • 所有的单列集合和数组才能用增强for进行遍历;
  • 修改增强for中的变量,不会改变集合中原本的数据;

格式:

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

}

import java.util.ArrayList;
import java.util.Collection;public class CollectionDemo3 {public static void main(String[] args) {//1.创建集合,添加元素;Collection<String> coll=new ArrayList<>();coll.add("zhangsan");coll.add("lisi");coll.add("wangwu");//2.利用增强for进行遍历;//s:第三方变量,在循环中依次表示集合中每一个数据;for(String s:coll){System.out.println(s);}}
}

三.Lambda表达式遍历

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

import java.util.ArrayList;
import java.util.Collection;
import java.util.function.Consumer;public class CollectionDemo4 {public static void main(String[] args) {//1.创建集合并添加元素Collection<String> coll = new ArrayList<>();coll.add("zhangsan");coll.add("lisi");coll.add("wangwu");//2.利用匿名内部类的形式//forEach底层原理:///*coll.forEach(new Consumer<String>() {@Overridepublic void accept(String s) {System.out.println(s);}});*///lambda表达式coll.forEach(s -> System.out.println(s));}
}

爱唱歌网