欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

集合性能 -,集合性能

来源: javaer 分享于  点击 1393 次 点评:184

集合性能 -,集合性能


package com.sheting.basic.collection.capcity;

import java.util.ArrayList;
import java.util.List;

public class TestArrayList{

    public static void main(String[] args) {

        long begin1 = System.currentTimeMillis();
        List<String> list1 = new ArrayList<>();
        for (int i = 0; i < 1000000; i++) {
            list1.add(new String(i + ""));
        }
        long end1 = System.currentTimeMillis();
        System.out.println("list1 time:" + (end1 - begin1));

        long begin2 = System.currentTimeMillis();
        List<String> list2 = new ArrayList<>(1000000);
        for (int i = 0; i < 1000000; i++) {
            list2.add(new String(i + ""));
        }
        long end2 = System.currentTimeMillis();
        System.out.println("list2 time:" + (end2 - begin2));
    }
}

执行结果:

list1 time246
list2 time124

上面代码两个list分别添加1000000个元素,list1没有指定初始容量, 耗时几乎是list2的一倍.

因此, 对于已知的情景,请为集合指定初始容量

ArrayList每次新增一个元素,就会检测ArrayList的当前容量是否已经到达临界点,如果到达临界点则会扩容2倍。然而ArrayList的扩容以及数组的拷贝生成新的数组是相当耗资源的.

相关文章

    暂无相关文章

用户点评