Collection接口都是通过Iterator()(即迭代器)来对Set和List遍历。
通过语句:Iterator it=c.iterator(); 得到一个迭代器,将集合中所有元素顺序排列。然后可以通过interator方法进行遍历,迭代器有一个游标(指针)指向首位置。
Interator有hasNext(),用于判断元素右边是否还有数据,返回True说明有。然后就可以调用next动作。Next()会将游标移到下一个元素,并把它所跨过的元素返回。(这样就可以对元素进行遍历)
其一本省iterator就提供了remove(),next(),hasNext() 三个方法,就没有add()这个方法!
其二
Iterator<String> iter = alist.iterator();
while (iter.hasNext()) {//多次循环,判断iter里面有没有数据
String str= iter.next();
if (str.equals("kko")) {
iter.remove(); //而你在这里如果不加if,就相当于没循环一次就会移除,会报错的
}
1)ListIterator继承Iterator接口,所以它封装了更多的抽象方法!
2)ListIterator有add()方法,可以向List中添加对象,而Iterator不能。
3)ListIterator可以定位当前的索引位置,nextIndex()和previousIndex()可以实现。Iterator 没有此功能。
4)都可实现删除对象,但是ListIterator可以实现对象的修改,set()方法可以实现。Iterator仅能遍历,不能修改。因为ListIterator的这些功能,可以实现对LinkedList等List数据结构的操作。 |