for顺序遍历耗时 > iterator迭代器遍历耗时 > 通过removeFirst()或removeLast()遍历耗时 > forach顺序遍历耗时 = 通过pollFirst()或pollLast()来遍历耗时。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.LinkedList;
public class Test {
public static void main(String[] args) {
//创建存放int类型的linkedList
LinkedList<Integer> linkedList = new LinkedList<Integer>();
for(int i = 20;i < 100;i ++) {
linkedList.add(i);
}
//添加元素到列表开头
linkedList.addFirst(0);
System.out.println("添加元素到列表开头:"+linkedList);
//在列表结尾添加元素,同linkedList.add()同inkedList.offer()
linkedList.addLast(9);
System.out.println("添加元素到列表结尾:"+linkedList);
//在指定位置添加元素
linkedList.add(1, 1);
System.out.println("在指定位置添加元素:"+linkedList);
//获得第一个元素
System.out.println("获得第一个元素:"+linkedList.getFirst());
//获得第最后一个元素
System.out.println("获得最后一个元素:"+linkedList.getLast());
//删除第一个元素并返回删除的元素
System.out.println("删除第一个元素:"+linkedList.removeFirst());
//删除最后一个元素并返回删除的元素
System.out.println("删除第一个元素:"+linkedList.removeLast());
//判断是否指定元素
System.out.println("判断是否指定元素:"+linkedList.contains(3));
//将列表中指定位置的元素替换为指定的元素
linkedList.set(0, 999);
System.out.println("将列表中指定位置的元素替换为指定的元素:"+linkedList);
//获得指定位置的元素
System.out.println("获得指定位置的元素:"+linkedList.get(0));
//获取首次出现的指定元素的索引
System.out.println("获取首次出现的指定元素的索引:"+linkedList.indexOf(999));
//获取最后一次次出现的指定元素的索引
System.out.println("获取最后一次出现的指定元素的索引:"+linkedList.lastIndexOf(5));
//获取第一个元素但不移除此列表的第一个元素
System.out.println("peek(): " + linkedList.peek());
System.out.println("element(): " + linkedList.element());
//移除第一个元素
System.out.println("poll(): " + linkedList.poll());
System.out.println("集合: " + linkedList);
System.out.println("remove():" + linkedList.remove());
System.out.println("集合: " + linkedList);
//在此列表的开头插入指定的元素
linkedList.offerFirst(6);
System.out.println("集合: " + linkedList);
//在此列表末尾插入指定的元素
linkedList.offerLast(6);
System.out.println("集合: " + linkedList);
//获取但不移除此列表的第一个元素
System.out.println("peekFirst(): " + linkedList.peekFirst());
//获取但不移除此列表的最后一个元素
System.out.println("peekLast(): " + linkedList.peekLast());
//获取并移除此列表的第一个元素
linkedList.pollFirst();
System.out.println("pollFirst():" + linkedList);
//获取并移除此列表的最后一个元素
linkedList.pollLast();
System.out.println("pollLast():" + linkedList);
//将元素推入此列表所表示的堆栈(插入到列表的头)
linkedList.push(6);
System.out.println("push():" + linkedList);
//从此列表所表示的堆栈处弹出一个元素(获取并移除列表第一个元素)
linkedList.pop();
System.out.println("pop():" + linkedList);
//从此列表中移除第一次出现的指定元素(从头部到尾部遍历列表)
linkedList.push(999);
linkedList.push(888);
linkedList.push(999);
System.out.println("开始removeFirstOccurrence()前:" + linkedList);
linkedList.removeFirstOccurrence(999);
System.out.println("removeFirstOccurrence():" + linkedList);
//从此列表中移除最后一次出现的指定元素(从尾部到头部遍历列表)
linkedList.push(999);
linkedList.push(888);
linkedList.push(999);
System.out.println("开始removeFirstOccurrence()前:" + linkedList);
linkedList.removeLastOccurrence(888);
System.out.println("removeFirstOccurrence():" + linkedList);
//清空所有元素
linkedList.clear();
for (int i = 0; i < 10000; i++) {
linkedList.add(i);
}
//迭代器遍历
Iterator<Integer> iterator = linkedList.iterator();
long start = System.currentTimeMillis();
StringBuffer stringBuffer = new StringBuffer();
while (iterator.hasNext()) {
stringBuffer.append(iterator.next());
}
long end = System.currentTimeMillis();
System.out.println("iterator迭代器遍历耗时:" + (end - start) + "ms");
//顺序遍历
start = System.currentTimeMillis();
for (int i = 0; i < linkedList.size(); i++) {
linkedList.get(i);
}
end = System.currentTimeMillis();
System.out.println("for顺序遍历耗时:" + (end - start) + "ms");
//顺序遍历
start = System.currentTimeMillis();
stringBuffer = new StringBuffer();
for (Integer integer:linkedList) {
stringBuffer.append(integer);
}
end = System.currentTimeMillis();
System.out.println("forach顺序遍历耗时:" + (end - start) + "ms");
//通过pollFirst()或pollLast()来遍历LinkedList
LinkedList<Integer> integers = new LinkedList<Integer>();
integers.addAll(linkedList);
start = System.currentTimeMillis();
stringBuffer = new StringBuffer();
while (integers.size() != 0) {
stringBuffer.append(integers.pollFirst());
}
end = System.currentTimeMillis();
System.out.println("通过pollFirst()或pollLast()遍历耗时:" + (end - start) + "ms");
//通过removeFirst()或removeLast()来遍历LinkedList
LinkedList<Integer> integers2 = new LinkedList<Integer>();
integers2.addAll(linkedList);
start = System.currentTimeMillis();
stringBuffer = new StringBuffer();
while (integers2.size() != 0) {
stringBuffer.append(integers2.removeFirst());
}
end = System.currentTimeMillis();
System.out.println("通过removeFirst()或removeLast()遍历耗时:" + (end - start) + "ms");
}
}