java list 之详解_Java List集合详解

本文详细介绍了Java中List集合的三种典型实现:ArrayList、Vector和LinkedList。分别从数据结构、访问效率、增删操作等方面进行了对比,并深入探讨了ArrayList与LinkedList的特点。

List集合代表一个元素有序、可重复的集合,集合中每个元素都有其对应的顺序索引。即可以用索引来访问指定位置List中的元素。List集合默认按元素的添加顺序设置元素的索引,List集合允许塞数据类型不一样的元素

90d7ae68dfbccec59e288a1289d33d4d.png

一、ArrayList

ArrayList为List集合类的典型实现,它是基于数组来实现的,内部封装了一个动态的、允许再分配的Object[]数组,默认长度为10,加载因子为1,一次扩容后的长度为原长度的1.5倍+1(例如对10进行扩容,扩容后的长度为10*1.5+1 = 16)。

二、Vector

Vector也是List集合类的典型实现,它是线程安全的,不过他过于古老,一般不推荐使用。默认长度为10,加载因子为1,一次扩容后的长度为原长度的2倍。

三、LinkedList

LinkedList顾名思义,是基于链表实现的。

在此讲一下LinkedList与ArrayList的区别:

1.访问方面:ArrayList的访问效率要比LinkedList效率要高,LinkedList需要对链表进行遍历挨着找。

2.增删:对于ArrayList,最好的情况就是在把表最后的元素增删,最差的情况是把元素在表最前面增删(需要把后面的元素都进行移动),而对于LinkedList,在这方面就快很多。

3.空间浪费方面:ArrayList对于空间的浪费,主要是在一次扩容后,可能有相当一部分空间没有元素;LinkedList对于空间的浪费体现在每个元素都占用了一定的空间。

标签:Java,LinkedList,ArrayList,元素,List,详解,集合,长度

来源: https://blog.youkuaiyun.com/laobanhuanghe/article/details/101154936

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值