- 通过迭代器遍历。即通过Iterator去遍历。
for(Iterator iter = list.iterator(); iter.hasNext();)
iter.next();
- 通过快速随机访问遍历LinkedList
int size = list.size();
for (int i=0; i<size; i++) {
list.get(i);
}
- 过另外一种for循环来遍历LinkedList
for (Integer integ:list)
;
遍历实例及其效率
package day_3_29;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;
public class LinkedListThruTest {
public static void main(String[] args) {
}
private static LinkedList getLinkedList() {
LinkedList llist = new LinkedList();
for (int i = 0; i < 100000; i++)
llist.addLast(i);
return llist;
}
private static void iteratorLinkedListThruIterator(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
for (Iterator iter = list.iterator(); iter.hasNext();)
System.out.println(iter.next());
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorLinkedListThruIterator:" + interval + " ms");
}
private static void iteratorLinkedListThruForeach(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
int size = list.size();
for (int i = 0; i < size; i++) {
System.out.println(list.get(i));
}
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorLinkedListThruForeach:" + interval + " ms");
}
private static void iteratorThroughFor2(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
for (Integer integ : list)
System.out.println(integ);
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorThroughFor2:" + interval + " ms");
}
private static void iteratorThroughPollFirst(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
while(true) {
Object obj = list.pollFirst();
if(obj == null)
break;
System.out.println(obj);
}
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorThroughPollFirst:" + interval + " ms");
}
private static void iteratorThroughPollLast(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
while(true) {
Object obj = list.pollLast();
if(obj == null)
break;
System.out.println(obj);
}
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorThroughPollLast:" + interval + " ms");
}
private static void iteratorThroughRemoveFirst(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
while(true) {
try {
Object obj = list.removeFirst();
System.out.println(obj);
} catch (Exception e) {
break;
}
}
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorThroughRemoveFirst:" + interval + " ms");
}
private static void iteratorThroughRemoveLast(LinkedList<Integer> list) {
if (list == null)
return;
long start = System.currentTimeMillis();
while(true) {
try {
Object obj = list.removeLast();
System.out.println(obj);
} catch (Exception e) {
break;
}
}
long end = System.currentTimeMillis();
long interval = end - start;
System.out.println("iteratorThroughRemoveLast:" + interval + " ms");
}
}