|
代码有一定迷惑性,不如把各项指标拆开来进行单项比较,代码修改如下:
- import java.util.ArrayList;
- import java.util.LinkedList;
- import java.util.List;
- public class TestArrayList {
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- test(new ArrayList());
- test(new LinkedList());
- }
- @SuppressWarnings("unchecked")
- public static void test(List list) {
- System.out.println(list.getClass().getName());
- System.out.print("simpleadd\tsize: " + list.size());
- Long l = System.currentTimeMillis();
- for (int i = 0; i < 10000; i++) {
- list.add("a" + i);
- }
- Long ll = System.currentTimeMillis();
- System.out.println(" ----> " + list.size());
- System.out.println("time elasped " + (ll - l));
- System.out.print("middleadd\tsize: " + list.size());
- l = System.currentTimeMillis();
- for (int j = 500; j < 5500; j++) {
- list.add(j, "test" + j);
- }
- ll = System.currentTimeMillis();
- System.out.println(" ----> " + list.size());
- System.out.println("time elasped " + (ll - l));
- System.out.print("simpleremove\tsize: " + list.size());
- l = System.currentTimeMillis();
- for (int j = 500; j < 5500; j++) {
- list.remove(0);
- }
- ll = System.currentTimeMillis();
- System.out.println(" ----> " + list.size());
- System.out.println("time elasped " + (ll - l));
-
- System.out.print("middleremove\tsize: " + list.size());
- l = System.currentTimeMillis();
- for (int j = 500; j < 5500; j++) {
- list.remove(j - 500);
- }
- ll = System.currentTimeMillis();
- System.out.println(" ----> " + list.size());
- System.out.println("time elasped " + (ll - l));
- }
- }
复制代码 |
|