集合相关问题整理

xiaoxiao2021-02-28  169

1. 集合的类型为什么不能指定为基本数据类型?如:List<int> list = new ArrayList<int>();

答:集合中存放的可都是对象的引用,实际内容都在堆上面或者方法区里面,但是基本数据类型是在栈上分配空间的,随时就被收回的。但是通过自动包装类就可以把基本类型转为对象类型,存放引用就解决了这个问题。

2. 集合中存放的内容比较多时,在初始化时应指定其大小。这是因为如果不指定大小,每次向集合中插入数据时,集合都去判断是否达到零界点,如果达到零界点,集合会自动扩大1.5倍

示例

public static void main(String[] args) { long begin1 = System.currentTimeMillis(); List<String> list1 = new ArrayList<>(); for (int i = 0; i < 1000000; i++) { list1.add("第" + i + 1 + "个元素"); } 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("第" + i + 1 + "个元素"); } long end2 = System.currentTimeMillis(); System.out.println("list2 time:" + (end2 - begin2)); }

结果

list1 time:113 list2 time:66

转载请注明原文地址: https://www.6miu.com/read-25658.html

最新回复(0)