java集合图解_图文剖析java集合框架

533e7bffd2351884326e759d412ad43c.png

一:ArrayList

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

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

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

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

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

97e3ebfa670650392103958e6dfa110a.png

a39531da3ec3a53f5d68b733b9646315.png

db83c1ba418cf3a02b2d4b658cb8595a.png

可以看出ArrayList()

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

ArrayList常用的一些方法

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

51fb2110af81f5980f4abfa3267be5d7.png

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

1a8ab02d3cf01976c894f94f023fd123.png

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

0cca326c872d6cee63f565156173564a.png

二:LinkedList

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

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

a80b394c137f577d32444b1bfec8b61b.png

LinkedList() 构造一个空列表。

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

常用的一些方法:

存储:

add(E e)

8a8198192f88141746f30e356501ccd9.png常用的添加方法

9ff51ceb7cd38321975549fe78bf9c36.png默认添加元素在列表末尾处

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

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

三:Vector

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

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

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

常用方法:

add(E e)

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

remove(int index)

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

set(int index, E element)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值