Java之Iterator接口
开发工具与关键技术:MyEclipse 10,java
作者:刘东标
撰写时间:2019-05-22
一、Iterator 接口
Iterator 主要遍历Collection 集合中的元素,也有称为迭代器或迭代精灵。
boolean hasNext():若被迭代的集合元素还没有被遍历,返回 true.
Object next():返回集合的下一个元素.
void remove():删除集合上一次
next()方法返回的元素。 (若集合中有多个相同的元素,都可以 删掉)
iterator 对于集合才能用,for 不同,只要是循环都可用。
迭代是取出集合中元素的一种方式。
因为Collection 中有 iterator 方法,所以每一个子类集合对象都具备迭代器。
迭代器在Collcection 接口中是通用的,它替代了 Vector 类中的 Enumeration(枚举)。
迭代器 的next 方法是自动向下取元素,要避免出现 NoSuchElementException。
迭代器的next方法返回值类型是Object,所以要记得类型转换。 (学到泛型就可以消除强转!)
Eg:Iterator iter=l.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); }
二、集合遍历输出方式
Iterator:迭代输出 一旦操作集合的遍历输出,首选 Iterator 接口;
ListIterator:Iterator 子接口,专门输出 List 中的元素;
Enumeration:古老的输出方式,迭代 Vector 元素,被 Iterator 取代;
foreach:可输出数组和Iterable 对象;
总结: 集合遍历输出方式:
- Iterable 接口(迭代遍历) 注:优先选择 Iterator 接口,遍历 Collection 里所有元素, 也称为迭代器和迭代精灵;迭代是取出集合中元素的一种推荐方式。
- Foreach 循环 注:可以直接用,使用场合:数组和 Iterable 对象!
- For 循环 注:在()内实例化 Iterable 对象,进行遍历!
- 先用 toArray 方法输出成为数组,再用 Foreach 循环! 第一个和第三个很类似,第二个和第四个很类似!
Eg: package july7;
//遍历输出的四种方式
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Demo11 {
public static void main(String[] args) {
List l = new ArrayList();
l.add(“1”);
l.add(“2”);
l.add(“3”);
l.add(“4”);
System.out.println(l);
/** * 遍历输出:四种方式 */
// 1、推荐使用的Iterator对象,迭代输出!
Iterator it = l.iterator();
while (it.hasNext()) {
System.out.println(“迭代输出:” + it.next());
}
// 2、对集合进行fore循环!
for (String str : l) {
System.out.println(“fore集合迭代输出:” + str);
}
// 3、for循环迭代,在for方法体内部实例化Iterator对象!
int i = 0;// for方法体内定义项不能出现多种不同类型
for (Iterator iter = l.iterator(); i < l.size(); i++) {
System.out.println(“for循环迭代实例化输出:” + iter.next());
}
// 4、先将集合转换为数组,再利用数组的遍历输出;
Object[] o = l.toArray();
for (Object object : o) {
System.out.println(“转换数组迭代输出:” + object);
}
}}