Java集合的优化
2015-10-10 11:10
381 查看
在实际开发中,我们常常使用到集合。平时都是任意为之,后来看了很多集合相关的资料,发现对集合仅是了解皮毛,遂细心学习,慢慢积累吧!
一 对于已知的情景,请为集合指定初始容量
看过集合添加的相关源码,在进行集合的添加操作时,ArrayList每次新增一个元素,就会检测ArrayList的当前容量是否已经到达临界点,如果到达临界点则会扩容1.5倍。然而ArrayList的扩容以及数组的拷贝生成新的数组是相当耗资源的。所以若我们事先已知集合的使用场景,知道集合的大概范围,我们最好是指定初始化容量,这样对资源的利用会更加好,尤其是大数据量的前提下,效率的提升和资源的利用会显得更加具有优势。
二 在使用asList时不要将基本数据类型当做参数
举例说明,int [] numbers={1,2,3,4,5};
List list = Arrays.asList(numbers);当我们输出list.size()时会发现其长度为1.不满足我们想要的结果。
而替换成Integer [] numbers={1,2,3,4,5};
List list = Arrays.asList(numbers);再次输出list.size()时,会发现其结果为5.
三 asList返回的列表是一个长度不可变的列表,传入参数的数组有多长,其返回的列表就只能是多长,不能执行添加操作
一 对于已知的情景,请为集合指定初始容量
看过集合添加的相关源码,在进行集合的添加操作时,ArrayList每次新增一个元素,就会检测ArrayList的当前容量是否已经到达临界点,如果到达临界点则会扩容1.5倍。然而ArrayList的扩容以及数组的拷贝生成新的数组是相当耗资源的。所以若我们事先已知集合的使用场景,知道集合的大概范围,我们最好是指定初始化容量,这样对资源的利用会更加好,尤其是大数据量的前提下,效率的提升和资源的利用会显得更加具有优势。
二 在使用asList时不要将基本数据类型当做参数
举例说明,int [] numbers={1,2,3,4,5};
List list = Arrays.asList(numbers);当我们输出list.size()时会发现其长度为1.不满足我们想要的结果。
而替换成Integer [] numbers={1,2,3,4,5};
List list = Arrays.asList(numbers);再次输出list.size()时,会发现其结果为5.
三 asList返回的列表是一个长度不可变的列表,传入参数的数组有多长,其返回的列表就只能是多长,不能执行添加操作
相关文章推荐
- 深入理解Java内存模型(七)——总结
- Java笔试题1
- 深入理解Java内存模型(六)——final
- 深入理解Java内存模型(五)——锁
- 深入理解Java内存模型(四)——volatile
- 深入理解Java内存模型(三)——顺序一致性
- 深入理解Java内存模型(二)——重排序
- 10个使用Java最广泛的现实领域
- Java中图片按质量压缩
- 深入理解Java内存模型(一)——基础
- 一步步教你使用Proguard混淆Java源代码
- 关于Java的方法的重载
- 关于Java的数组的使用
- 关于Java的URL编程
- 关于Java的UDP编程
- 关于Java的反射
- 关于Java的访问控制修饰符
- 关于Java的继承
- 在Java中,关于final关键字
- 在Java中,关于static关键字