1.Java集合类的基本接口是Collection接口。而Collection接口必须继承java.lang.Iterable接口
Iterable 接口只有一个方法:
public interface Iterable<T> {
public Iterator<T> iterator();
}
每个集合的实现类都会有一个iterator()的方法,通过该方法返回给使用者一个实现Iterator接口的对象。
Iterator迭代器包含的方法有:
hasNext():如果迭代器指向位置后面还有元素,则返回 true,否则返回false
next():返回集合中Iterator指向位置后面的元素
remove():删除集合中Iterator指向位置后面的元素
注意:每次调用next()方法时,迭代器的游标都是指向两个元素之间的位置,如下图。
删除list集合元素时,建议使用迭代器的remove方法,list的remove()方法可能存在漏删。
2.listiterator接口继承Iterator接口,对其做了拓展和限制,只有实现了lsit接口的集合才能使用。
增加了一下方法:
(1).hasPrevious(),返回true表士此列表迭代器在反向遍历列表时是否包含更多元素。
(2).previous()方法,返回列表中的上一个元素并向后移动光标位置。
(3).nextIndex(),返回后续调用返回的元素的索引next()。
(4).add(E e),将指定的元素插入列表(可选操作)。
(5).set(E e),取代由返回的最后一个元素next()或 previous()与指定的元素(可选操作)。
通过hasPrevious(),previous()方法,可以反向循环。通过add(),set()方法可以改变原集合数据。