Iterator(迭代器)、增强for循环
Iterator(迭代器)
java.util.Iterator接口:迭代器(对集合进行遍历)
有两个常用方法:
boolean hasNext();//判断集合中是否有下一个元素,有true,无false
E next();//返回迭代后的下一个元素
Iterator迭代器,是一个借口,我们无法直接使用,需要使用Iterator接口的实现类对象,获取实现类的方式比较特殊,Collection接口有一个方法,叫
Iterator<E> iterator();
可以返回在此Collection的元素上进行迭代的迭代器
迭代器的使用步骤:
1.使用集合中的方法iterator(),获取迭代器的实现类,使用Iterator接口接收(多态)
2.使用Iterator接口中的方法hasNext(),判断是否有下一个元素
3.使用Iterator接口中的方法next(),取出集合的下一个元素
package commonclass;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class TestIterator01 {
public static void main(String[] args) {
Collection<String> arrayList = new ArrayList<>();
arrayList.add("张三");
arrayList.add("李四");
arrayList.add("王五");
arrayList.add("赵六");
arrayList.add("田七");
Iterator<String> iterator = arrayList.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next()+"\t");
}
}
}
迭代器的实现原理:
增强for循环:底层使用的也是迭代器, 使用for循环的格式,简化了迭代器的书写
是JDK1.5之后出现的新特性
public interface Collection<E> extends Iterable<E>//所有的单列集合都可以使用增强for循环
public interface Iterable<T>//实现此接口允许一个对象是“for-each循环”语句的目标
增强for循环:用来遍历集合和数组
格式 :
for(集合/数组的数据类型 变量名 :集合名/数组名){
sout(变量名);
}
package commonclass;
import java.util.ArrayList;
import java.util.Collection;
public class TestFor_Each01 {
public static void main(String[] args) {
int[] arrays = {1,2,3,4,5};
for (int array : arrays) {
System.out.print(array+"\t");
}
Collection<String> arrayList = new ArrayList<>();
arrayList.add("张三");
arrayList.add("李四");
arrayList.add("王五");
arrayList.add("赵六");
arrayList.add("田七");
for (String s : arrayList) {
System.out.print(s+"\t");
}
}
}