</pre><p></p><pre name="code" class="java">
大家可以搜索一下普通情况遍历linkedlist应该是O(n)但是使用iterator就是常数,这让我很好奇。于是我去查了源码。。
一路顺着找找到了Collection,确实有一个iterator但是是个interface还没有实现。
网上找list,有一个listiterator还是这样。
只能去linked找了,找到了如下源码
private static final class LinkIterator<ET> implements ListIterator<ET> {
61 int pos, expectedModCount;
62
63 final LinkedList<ET> list;
64
65 Link<ET> link, lastLink;
66
67 LinkIterator(LinkedList<ET> object, int location) {
68 list = object;
69 expectedModCount = list.modCount;
70 if (location >= 0 && location <= list.size) {
71 // pos ends up as -1 if list is empty, it ranges from -1 to
72 // list.size - 1
73 // if link == voidLink then pos must == -1
74 link = list.voidLink;
75