List--ArrayList(浅识)一
来源:互联网 发布:安全员c证网络查询 编辑:程序博客网 时间:2024/06/05 14:06
java中ArrayList在平常的开发中用的是比较多的,ArrayLis是List接口的一个实现。
1)ArrayList类有三个构造方法:public ArrayList(int initialCapacity) ;创建一个ArrayList对象初始化大小;public ArrayList();无参构造方法,调用参数为int型的构造方法,默认大小为10;public ArrayList(Collection<? extends E> c);参数为一个集合,将传入的参数集合拷贝给新建的ArrayList对象。这就是ArrayList的三个构造方法,用来初始化创建的ArrayList对象
2)ArrayList采用数组存储对象分配连续空间,查找方便。ArrayList添加无素,超过默认大小时,需对存储对象的数组进行扩容,数组的扩容还是采用Arrays的copyOf方法,每次扩容为原大小的1.5倍(原因未知)。ArrayList删除元素,原码如下:
public E remove(int index) {
rangeCheck(index);
modCount++;
E oldValue = elementData(index);
int numMoved = size - index - 1;
if (numMoved > 0)
System.arraycopy(elementData, index+1, elementData, index,
numMoved);
elementData[--size] = null; // Let gc do its work
return oldValue;
}
删除元素后,需要把下标减一。这是因为在每次删除元素后,ArrayList会将后面部分的元素依次往上挪一个位置(就是copy);
3)从原码中可以看到ArrayList的添加和删除都没同步(加锁),所以new ArrayList()创建的对象非线程安全的,当我们需要一个线程安全的ArrayList对象时,可采用Collections.synchronizedList来创建一个线程安全的ArrayList对象。
以上是对ArrayList的最基础见解,以后还需更改。
- List--ArrayList(浅识)一
- java集合框架List之ArrayList(一)
- java集合框架List之ArrayList(一) .
- Java集合框架之List(一):ArrayList
- list ArrayList
- List<> ArrayList
- List-ArrayList
- 集合一:Collection、Iterator、List、ArrayList、Vector、LinkedList
- Java中集合(一)Collection 、List<E> 、ArrayList<E>
- ArrayList(一)
- List list = new ArrayList();
- List list = new ArrayList();
- Vetor Arraylist list
- Vetor Arraylist list
- List与ArrayList区别
- List 和 ArrayList 区别
- 集合 List ArrayList 问题
- List转换成为ArrayList
- 《wonderful tonight》
- Xamarin 手动安装
- 博客莫名被关,还好及时解决
- phoenix设计
- 创业分享:创业的过程就是坚持的过程
- List--ArrayList(浅识)一
- 广告行业知识
- tomcat环境变量配置
- ADT之练习题
- bzoj4310: 跳蚤
- nagios 笔记
- 1002. 写出这个数 (20)
- 算法练习3.Longest Substring Without Repeating Characters 最长不重复子字符串(map)
- android sdk 下各个文件夹的作用