Iterator接口
- Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素
- Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法,那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。
- Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建Iterator 对象,则必须有一个被迭代的集合。
- 集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
5.遍历 代码实现
Iterator iterator = coll.iterator();
//hasNext():判断是否还下一个元素
while(iterator.hasNext()){
//next():①指针下移 ②将下移以后集合位置上的元素返回
System.out.println(iterator.next());
}
Iterator接口的方法
返回值 | 方法 | 描述 |
---|---|---|
boolean | hasNext() | 如果具有下一个元素,则放回true |
泛型E | next() | 返回迭代中的下一个元素 |
default void | remove() | 从底层集合中删除这个迭代器返回的最后一个元素 |
remove()方法使用:如果还未调用next()或在上一次调用 next 方法之后已经调用了 remove 方法,再调用remove都会报IllegalStateException
jdk5.0新特性–增强for循环:(foreach循环)
1.遍历集合举例:
@Test
public void test1(){
Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry",20));
coll.add(new String("Tom"));
coll.add(false);
//for(集合元素的类型 局部变量 : 集合对象)
for(Object obj : coll){
System.out.println(obj);
}
}
说明:
内部仍然调用了迭代器。
2.遍历数组举例:
@Test
public void test2(){
int[] arr = new int[]{1,2,3,4,5,6};
//for(数组元素的类型 局部变量 : 数组对象)
for(int i : arr){
System.out.println(i);
}
}