一、简介
在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口`java.util.Iterator`。`Iterator`接口也是Java集合中的一员,但它与`Collection`、`Map`接口有所不同,`Collection`接口与`Map`接口主要用于存储元素,而`Iterator`主要用于迭代访问(即遍历)`Collection`中的元素,因此`Iterator`对象也被称为迭代器。
二、定义:
迭代器:集合有很多种,有些是没有索引的,所以不能有for循环,迭代器是一种通用的从集合中取出元素的方式.
三、常用方法:
1、boolean hasNext()如果仍有元素可以迭代,则返回 true,用来判断是否集合中还有元素
2、E next() 获取集合中下一个元素
3、由于iterator是一个接口,无法实例化对象,需要是使用collection中的方法:
Iterator<E> iterator()返回在此 collection 的元素上进行迭代的迭代器。
Iterator<E>也是一个泛型,集合是什么类型,迭代器就是什么类型。
四、增强for循环
1、增强for循环foreach,它底层也是迭代器,只是使用了for循环的格式。JDK1.5以后出现的。
2、作用:用来遍历集合或数组;
3、格式:
for(数组/集合数据类型 变量名:数组/结合名){
sout(变量名);
}
import java.util.ArrayList;
import java.util.Collection;
public class Iterator {
public static void main(String[] args) {
Collection<String> ce = new ArrayList<>();
ce.add("张珊");
ce.add("李思");
ce.add("王武");
ce.add("赵柳");
ce.add("林奇");
System.out.println(ce);
System.out.println("==========================");
java.util.Iterator<String> it = ce.iterator();
while (it.hasNext())
{
String next = it.next();
System.out.println(next);
}
System.out.println("==========================");
for(java.util.Iterator<String> iterator = ce.iterator();iterator.hasNext();){
String next = iterator.next();
System.out.println(next);
}
System.out.println("==========增强for循环=========");
//增强for循环 ----集合或数组
//数组
int[] arry =new int[] {1,2,31,43,45};
for(int i:arry){
System.out.println(i);
}
//集合
ArrayList<String> arryList = new ArrayList<>();
arryList.add("maozhedong");
arryList.add("zhouenlai");
arryList.add("liushaoqi");
arryList.add("zhude");
for(String str:arryList){
System.out.println(str);
}
}
}
输出:
[张珊, 李思, 王武, 赵柳, 林奇]
==========================
张珊
李思
王武
赵柳
林奇
==========================
张珊
李思
王武
赵柳
林奇
==========增强for循环=========
1
2
31
43
45
maozhedong
zhouenlai
liushaoqi
zhude