Java AbstractCollection中的iterator()方法及示例
Java中的Collection是一个非常重要的接口,它代表着一组对象的集合,提供了许多常用的操作方法,比如增加、删除、查找元素,获取集合的大小等。AbstractCollection是Collection接口的实现类,它提供了一些基本的实现供子类继承。
AbstractCollection中的iterator()方法是其中一个非常重要的方法,它返回一个Iterator对象,用于遍历当前集合中的元素。下面我们就来详细地介绍这个方法及其示例。
iterator()方法的定义
我们先来看一下AbstractCollection中iterator()方法的定义:
public abstract Iterator<E> iterator();
可以看到,它没有任何参数,返回类型是Iterator
示例代码
接下来,我们将用一些示例代码来演示iterator()方法是如何工作的。
我们首先需要创建一个AbstractCollection的子类,实现iterator()方法。这里我们自定义一个名为MyCollection的集合类:
import java.util.AbstractCollection;
import java.util.Iterator;
class MyCollection extends AbstractCollection<String> {
private String[] array;
private int size;
public MyCollection(String[] array) {
this.array = array;
this.size = array.length;
}
@Override
public int size() {
return size;
}
@Override
public Iterator<String> iterator() {
return new MyIterator(array);
}
private static class MyIterator implements Iterator<String> {
private String[] array;
private int cursor;
public MyIterator(String[] array) {
this.array = array;
this.cursor = 0;
}
@Override
public boolean hasNext() {
return cursor < array.length;
}
@Override
public String next() {
return array[cursor++];
}
@Override
public void remove() {
throw new UnsupportedOperationException();
}
}
}
这个集合类中包含了一个String类型的数组,使用size()方法返回数组的大小。iterator()方法返回一个MyIterator对象,这个对象实现了Iterator接口,用于遍历存储在数组中的元素。
下面是我们使用MyCollection类的示例代码:
public class Main {
public static void main(String[] args) {
String[] array = {"a", "b", "c"};
MyCollection coll = new MyCollection(array);
Iterator<String> it = coll.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}
}
}
在这个示例中,我们创建了一个包含三个元素的字符串数组,使用MyCollection类将这个数组包装成集合。然后我们通过iterator()方法获取到一个Iterator对象,使用while循环遍历这个集合中的所有元素。
运行结果
最后,我们来看一下这个示例的运行结果:
a
b
c
上面的代码演示了如何使用AbstractCollection中的iterator()方法实现遍历Collection集合,我们可以发现,只要实现iterator()方法并返回正确的Iterator对象,就可以对Collection集合进行遍历操作。
结论
在Java中,AbstractCollection是Collection接口的一个基本实现类,它提供了一些基本的实现供子类继承。其中的iterator()方法是用于遍历集合中的所有元素,返回一个Iterator对象。我们可以根据不同的需求来实现这个方法,并使用它来遍历集合中的所有元素。