集合性能 -,集合性能
分享于 点击 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 time:246
list2 time:124
上面代码两个list分别添加1000000个元素,list1没有指定初始容量, 耗时几乎是list2的一倍.
因此, 对于已知的情景,请为集合指定初始容量。
ArrayList每次新增一个元素,就会检测ArrayList的当前容量是否已经到达临界点,如果到达临界点则会扩容2倍。然而ArrayList的扩容以及数组的拷贝生成新的数组是相当耗资源的.
相关文章
- 暂无相关文章
用户点评