ArrayList LinkedList performance comparison with the

ArrayList and LinkedList are inherited to the Collection object, inside there are some differences to achieve results in terms of performance

  1. Insert Performance Comparison

    private final static int COUNT = 10000000;
    
    private static long insertObject(List<Object> list) {
        Object obj = new Object();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < COUNT; i++) {
            list.add(obj);
        }
        long endTime = System.currentTimeMillis();
        return endTime - startTime;
    }
    
    public static void main(String[] args) {
        int initCount = (int) (COUNT * 1.5);
        System.out.println("ArrayList 增加" + COUNT + "条数据,耗时:" + insertObject(new ArrayList<Object>(initCount)));
        System.out.println("LinkedList 增加" + COUNT + "条数据,耗时:" + insertObject(new LinkedList<Object>()));
    }

    The code with the following results:
    ArrayList LinkedList performance comparison with the

  2. Query Performance Comparison
    private final static int COUNT = 1000000;

    private static Map<String, Object> insertObject(List<Object> list) {
        User user = new User();
        long startTime = System.currentTimeMillis();
        for (int i = 0; i < COUNT; i++) {
            user.setId(i);
            user.setName("i:" + i);
            user.setAge(i);
            list.add(user);
        }
        long endTime = System.currentTimeMillis();
        Map result = new HashMap<String, Object>();
        result.put("time", endTime - startTime);
        result.put("list", list);
        return result;
    }

    private static long readObject(List<User> list) {
        long startTime = System.currentTimeMillis();
        for (User user : list) {

        }
        long endTime = System.currentTimeMillis();
        return endTime - startTime;
    }

    public static void main(String[] args) {
        // 插入
        int initCount = (int) (COUNT * 1.5);
        Map<String, Object> arrayListResult = insertObject(new ArrayList<Object>());
        Map<String, Object> linkedListResult = insertObject(new LinkedList<Object>());
        System.out.println("ArrayList 增加" + COUNT + "条数据,耗时:" + arrayListResult.get("time"));
        System.out.println("LinkedList 增加" + COUNT + "条数据,耗时:" + linkedListResult.get("time"));

        // 读取
        System.out.println("ArrayList 查询" + COUNT + "条数据,耗时:" + readObject((List<User>) arrayListResult.get("list")));
        System.out.println("LinkedList 查询" + COUNT + "条数据,耗时:" + readObject((List<User>) linkedListResult.get("list")));
    }
  1. Modify Performance Comparison
  2. Removing performance comparison

Guess you like

Origin blog.51cto.com/11219183/2401485