package iterator;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
//List中的迭代器中有hasnext(),next(),remove()方法而其子类ArrayList,LinkedList增加了add方法
public class IteratorDemol {
@SuppressWarnings("all")
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
// 迭代器的这种使用方法
for (Iterator ite = list.iterator(); ite.hasNext();) {
System.out.println(ite.next());
}
Iterator ite = list.iterator();
while (ite.hasNext()) {
if (ite.next().equals("a")) {
ite.remove();//删除cursor左边的元素,即删除刚遍历过的元素,该操作不能连续执行,只能执行一次
}
}
System.out.println("*****************");
for (Object li : list) {
System.out.println(li);
}
}
}
对迭代器的理解:
迭代器中的游标(cursor)首先指向第一个元素,hasnext()方法通过判断cursor和size是否相等,返回true or false;
每next()一次,cursor+1并且返回cursor之前指向的元素的值类似于return(elementData[cursor++]);