您的位置 首页 java

图文剖析java集合框架

Map接口图补充待续

一:ArrayList

它实现 List 接口、底层使用数组保存所有元素,可调整大小的数组的实现List接口。 实现所有可选列表操作,并允许所有元素,包括null 。

线程 不同步。如果多个线程同时访问同个实例,并且至少有一个线程在结构上修改列表,则必须在外部进行同步。也可以使用Collections.synchronizedList方法进行包装。

List list = Collections.synchronizedList(new ArrayList(…));

底层使用数组实现, 构造方法 有三种ArrayList(),ArrayList(int initialCapacity),ArrayList( Collection <? extends E> c)。

下图是对应的构造源码截图。

可以看出ArrayList()

默认构造方法存储容量为空列表(这里针对jdk1.8,之前版本默认是定义长度为10),ArrayList(int initialCapacity)定义了一个制定初始容量的列表,ArrayList(Collection<? extends E> c))构造指定集合的元素列表。

ArrayList常用的一些方法

存储:add(E e)将指定的元素追加到此列表的末尾。

读取:get(int index),读取方法很简单,源码是直接判断下标异常和直接读取数组对应下标的值。源码如下

移除:remove(int index) ,删除该列表中指定位置的元素

二:LinkedList

LinkedList底层是一个 双向链表 结构,允许null值元素。

构造函数 (源码截图如下)

LinkedList() 构造一个空列表。

LinkedList(Collection<? extends E> c) 构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。

常用的一些方法:

存储:

add(E e)

常用的添加方法

默认添加元素在列表末尾处

读取:get(int index) 获取指定位置的元素
 

去除:remove(int index) 删除该列表中指定位置的元素。 将任何后续元素移动到左侧(从其索引中减去一个元素)。 返回从列表中删除的元素。

三: Vector

Vector类实现了可扩展的对象数组,同步的。 如果不需要 线程安全 的实现,建议使用ArrayList代替Vector 。

构造函数:Vector() ,Vector(Collection<? extends E> c) ,Vector(int initialCapacity, int capacityIncrement)

默认构造定义数组大小为10

常用方法:

add(E e)

将指定的元素追加到此Vector的末尾。

remove(int index)

删除此向量中指定位置的元素。

set(int index, E element)

用指定的元素替换此Vector中指定位置的元素。

下一节将讲解Set接口,待续。

文章来源:智云一二三科技

文章标题:图文剖析java集合框架

文章地址:https://www.zhihuclub.com/187622.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图