import java.util.*;
public class Test{
public static void main(String[] args){
Collection c = new HashSet();
c.add("f1");
c.add("f2");
c.add("f3");
Iterator it = c.iterator();
while(it.hasNest()){
it.nest();
//it.remove();
}
System.out.print(c.);
}
}
上面的例子中,使用t.nest()方法输出的结果是[f1,f3, f2],也就是f1,f2,f3的随机排列。而使用it.remove方法,输出结果为[]。
iterator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断其是否有内容,如果有内容则把内容取出。iterator接口的定义为:
public interface Iterator<E>
Iterator接口在使用时也是需要制定泛型,当然在此处制定的泛型类型最好与集合中的泛型类型一致。它的常用方法有三种:
boolean hasNest() :如果仍有元素可以迭代,则返回true。(换句话说,如果next返回了元素而不是抛出异常,则返回true)。返回:如果迭代器具有多个元素,则返回true。
E nest() :返回迭代的下一个元素。 返回:迭代的下一个元素。 抛出异常:NoSuchElementException- 没有元素可以迭代
void remove() :从迭代器指向的collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用next只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的collection,则迭代器的行为是不确定的。抛出异常:UnsupportedOperationException- 如果迭代器不支持remove操作。 IllegalStateException- 如果尚未调用next方法,或者在上一次调用 next 方法之后已经调用了remove方法。