效果比较:
=========ArrayList AddLast=====================
109ms
=========LinkedList AddLast=====================
94ms
=========ArrayList AddFirst=====================
2297ms
=========LinkedList AddFirst=====================
171ms
=========ArrayList Get=====================
0ms
=========LinkedList Get======================
17938ms
=========ArrayList Remove=====================
2172ms
=========LinkedList Remove======================
15ms
源代码:
public class CompareTest {
private static long startTime;private static long endTime;
public static void compare_ArrayList_LinkedList(){
LinkedList<Person> l = new LinkedList<Person>();
LinkedList<Person> l2 = new LinkedList<Person>();
Iterator<Person> itl;
ArrayList<Person> a = new ArrayList<Person>();
ArrayList<Person> a2 = new ArrayList<Person>();
Iterator<Person> ita;
System.out.println("=========ArrayList AddLast=====================");
startTime = System.currentTimeMillis();
for (int n = 0; n < 50000; n++) {
a.add(new Person(Integer.toString(n)));
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========LinkedList AddLast=====================");
startTime = System.currentTimeMillis();
for (int n = 0; n < 50000; n++) {
l.add(new Person(Integer.toString(n)));
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========ArrayList AddFirst=====================");
startTime = System.currentTimeMillis();
for (int n = 0; n < 50000; n++) {
a2.add(0,new Person(Integer.toString(n)));
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========LinkedList AddFirst=====================");
startTime = System.currentTimeMillis();
for (int n = 0; n < 50000; n++) {
l2.addFirst(new Person(Integer.toString(n)));
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
itl = l.iterator();
ita=a.iterator();
System.out.println("=========ArrayList Get=====================");
startTime = System.currentTimeMillis();
for(int i=0;i<a.size();i++){
a.get(i);
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========LinkedList Get======================");
startTime = System.currentTimeMillis();
for(int i=0;i<l.size();i++){
l.get(i);
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========ArrayList Remove=====================");
startTime = System.currentTimeMillis();
while (ita.hasNext()) {
ita.next();
ita.remove();
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
System.out.println("=========LinkedList Remove======================");
startTime = System.currentTimeMillis();
while (itl.hasNext()) {
itl.next();
itl.remove();
}
endTime = System.currentTimeMillis();
System.out.println(endTime - startTime + "ms");
}
public static void main(String[] args){
compare_ArrayList_LinkedList();
}
}
class Person {
private String name;
public Person(String n) {
this.name = n;
}
public String getName() {
return this.name;
}
}