码迷,mamicode.com
首页 > 编程语言 > 详细

Java核心类库—集合框架—ArrayList类

时间:2017-03-17 17:45:38      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:查询   集合   空间   使用   代码   java   性能   color   设计   

ArrayList类是java集合框架出现之后取代Vector类的

二者底层原理都是基于数组的算法,一模一样。

区别:

Vector:所有的方法都使用了synchronize修饰符  线程安全但是性能较低,适用于多线程环境。

ArrayList:所有的方法都没使用synchronize修饰符 线程不安全但性能较高。

即使以后多线程也不要使用Vector类

因为:List list = Collections.synchronizedList(new ArrayList(...)); 

 

常用方法参照Vector类

 

阅读源代码发现Vector类与ArrayList类差异有点大(从设上考虑

有时候某个方法需要返回ArrayList对象

但是在该方法中,如果一个都没有查询到时我们不会返回null,而是返回一个空集合对象(没有元素的集合)

在java7之前,即使使用new ArrayList创建对象,一个元素都不存储,但是在堆空间依然初始化了长度为10的Object数组,浪费堆空间。

从java7开始优化这个设计,new ArrayList其实创建的是一个空数组,当add的时候才会重新初始化数组。

 

Java核心类库—集合框架—ArrayList类

标签:查询   集合   空间   使用   代码   java   性能   color   设计   

原文地址:http://www.cnblogs.com/wenxudong/p/6567470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!