迭代:Collection集合元素的通用获取方式。在取元素之前, 判断集合有无元素,有就取出,继续判断,直到把集合中所有元素全部取出。
一,概述
在java.util.Iterator接口中,作为迭代器,可以对集合进行遍历。
Iterator迭代器,是一个接口,我们无法直接使用,须使用Iterator接口的实现类对象。获取实现类对象的方式比较特殊,Collection接口有一个方法iterator(),此方法返回迭代器实现类对象。
即Iterator iterator(),返回此Collection的元素上进行迭代的迭代器,迭代器泛型跟着集合走。
二,常用方法
1, boolean hasNext(): 仍有元素可以迭代,返回true,没有则返回false。
2,E next():返回迭代的下一个元素。
三,迭代器原理图
四,迭代器使用步骤
1,使用集合中的方法iterator()获取迭代器实现类对象,使用Iterator接口接收(多态);
2,使用Iterator接口中的方法hasNext(),判断有无下一个元素;
3,使用Iterator接口中的next()方法,取出集合中下一个元素。
代码示例:
package day4_29;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class demoIterator {
public static void main(String[] args) {
Collection<String> list = new ArrayList<>();//多态写法
list.add("易建联");
list.add("姚明");
list.add("赵睿");
list.add("胡金秋");
list.add("马尚");
System.out.println(list); //[易建联, 姚明, 赵睿, 胡金秋, 马尚]
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.print(s+" "); //迭代器遍历集合 易建联 姚明 赵睿 胡金秋 马尚
}
}
}
五,增强for循环
作用:用来遍历数组或集合,比使用迭代器遍历更简单。
底层使用迭代器,使用for循环的格式,简化了迭代器的书写(JDK1.5出现的新特性),所有单列集合都可使用增强for循环。
格式:
for(集合或数组类型 变量名 : 遍历的集合或数组){
循环体
}
代码示例:
package day4_29;
import java.util.ArrayList;
public class demoForeach {
public static void main(String[] args) {
demo1();
demo2();
}
private static void demo2() {
int[] arr = {12,15,16,17,20};
for(int num:arr){
System.out.print(num+" "); //12 15 16 17 20
}
}
private static void demo1() {
ArrayList<String> arrl = new ArrayList<>();
arrl.add("2020");
arrl.add("is");
arrl.add("not");
arrl.add("good");
arrl.add("!");
for(String str:arrl){
System.out.print(str+" "); // 增强for循环遍历集合 2020 is not good !
}
}
}