在Java 类库中,集合的根接口是Collection接口;
public interface Collection<E> extends Iterable<E> {
boolean add(E e);
add()方法的作用是向集合中添加元素,返回值是个bolean类型的。如果添加元素成功,改变了集合的大小,该方法返回true;如果集合未发生改变,则返回false。
Iterator iterator();
iterator()方法实现了一个Iterator 接口的方法,所以可以用这个迭代器去依次访问集合中的元素。元素被访问的顺序取决于集合的类型。如果对List类型的迭代,索引从0,迭代一次索引+1。然而对HashSet元素访问,它是随机,虽然无法确定元素访问的顺序,但是能确保在迭代过程能遍历到集合中所有的元素
......
}
也可以看下Iterator 这个迭代器的接口
public interface Iterable<E> {
E next();
boolean hasNext();
void remove();
}
next()方法,顾名思义下一个,当然也要确保是否有下一个,如果没有就抛出NoSuchElementException,没有下一个文件.so ,要在之前调用hasNext()方法,用法如下:
List<Integer> l = ...;
Iterable<Integer> it = l.iterable();
while(it.hasNext()){
Integer a = it.next();
......
}
还有一种写法是:
for(Integer ia : l){
system.out.println(ia);//这里对文档操作;
}
remove()方法删除元素,删除的是上一次调用next()方法是返回的元素。注意这里删除指定位置上的元素,需要越过这个元素。
while(it.hasNext()){
Integer a = it.next();
it.remove();//成功的删除
......
}
删除两个相邻的元素:
it.remove();
it.remove();//报错,
这里必须要越过要删除的元素,就是要调用一次next()方法。
ps:与Iterable类似的类,还有Eumeration,该类提供了两个方法,boolean hasMoreElements(),是否还有更多的元素;Object nextElement(),是否还有下一个元素。