ArrayList vs. LinkedList vs. Vector
Join the DZone community and get the full member experience.
Join For Free1. list overview

2. arraylist vs. linkedlist vs. vector
3. arraylist example
arraylist al = new arraylist();
al.add(3);
al.add(2);
al.add(1);
al.add(4);
al.add(5);
al.add(6);
al.add(6);
iterator iter1 = al.iterator();
while(iter1.hasnext()){
system.out.println(iter1.next());
}
4. linkedlist example
linkedlist ll = new linkedlist();
ll.add(3);
ll.add(2);
ll.add(1);
ll.add(4);
ll.add(5);
ll.add(6);
ll.add(6);
iterator iter2 = al.iterator();
while(iter2.hasnext()){
system.out.println(iter2.next());
}
6. performance of arraylist vs. linkedlist
i use the following code to test their performance:
arraylist arraylist = new arraylist();
linkedlist linkedlist = new linkedlist();
// arraylist add
long starttime = system.nanotime();
for (int i = 0; i < 100000; i++) {
arraylist.add(i);
}
long endtime = system.nanotime();
long duration = endtime - starttime;
system.out.println("arraylist add: " + duration);
// linkedlist add
starttime = system.nanotime();
for (int i = 0; i < 100000; i++) {
linkedlist.add(i);
}
endtime = system.nanotime();
duration = endtime - starttime;
system.out.println("linkedlist add: " + duration);
// arraylist get
starttime = system.nanotime();
for (int i = 0; i < 10000; i++) {
arraylist.get(i);
}
endtime = system.nanotime();
duration = endtime - starttime;
system.out.println("arraylist get: " + duration);
// linkedlist get
starttime = system.nanotime();
for (int i = 0; i < 10000; i++) {
linkedlist.get(i);
}
endtime = system.nanotime();
duration = endtime - starttime;
system.out.println("linkedlist get: " + duration);
// arraylist remove
starttime = system.nanotime();
for (int i = 9999; i >=0; i--) {
arraylist.remove(i);
}
endtime = system.nanotime();
duration = endtime - starttime;
system.out.println("arraylist remove: " + duration);
// linkedlist remove
starttime = system.nanotime();
for (int i = 9999; i >=0; i--) {
linkedlist.remove(i);
}
endtime = system.nanotime();
duration = endtime - starttime;
system.out.println("linkedlist remove: " + duration);
arraylist add: 13265642
linkedlist add: 9550057
arraylist get: 1543352
linkedlist get: 85085551
arraylist remove: 199961301
linkedlist remove: 85768810
- there are no large number of random access of element
- there are a large number of add/remove operations
Published at DZone with permission of Ryan Wang. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments