linkFirst
unlinkFirst
iterator会检测是否在界外。所以空链表无法获取指针。
其实next指的是iterator指向的当前的那个Node。
hasNext 可以看出,hasNext返回的是指针的nextIndex是否超过了链表长度。
ListItr构造函数 可以看出,nextIndex正是构造时的参数index。
例子如下,
LinkedList<Integer> list = new LinkedList<Integer> ();
list.add(3);
Iterator<Integer> it = list.iterator();
System.out.print(it.hasNext());
// 输出 true,因为it指向的是第一个Node,hasNext会比较nextIndex 0 是否小于 size 1,显然0<1。
System.out.print(it.next()); // 输出3,也就是第一个数