一、java.util.Iterator
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
方法名称得到了改进。
import java.util.Iterator;
public class IteratorTest implements Iterator{
@Override
public boolean hasNext() {
// 如果仍有元素可以迭代,则返回 true。
return false;
}
@Override
public Object next() {
// 返回迭代的下一个元素。
return null;
}
@Override
public void remove() {
//从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
//每次调用 next 只能调用一次此方法。
}
}
其中:
Object next():返回迭代器刚越过的元素的引用,返回值是Object,需要强制转换成自己需要的类型
boolean hasNext():判断容器内是否还有可供访问的元素
void remove():删除迭代器刚越过的元素
对于我们而言,我们只一般只需使用next()、hasNext()两个方法即可完成迭代
二、迭代器的使用
public class IteratorTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("tom");
list.add("jack");
list.add("jim");
//迭代器用于for循环
for (Iterator iter = list.iterator(); iter.hasNext();) {
String str = (String)iter.next();
System.out.println(str);
}
//迭代器用于while循环
Iterator iterator = list.iterator();
while(iterator.hasNext()){
String str = (String) iterator.next();
System.out.println(str);
}
}
}