List、Set集合知识总结

List、Set集合知识总结

一、List集合
List接口:继承自Collection接口。
特点:1、有序,存取顺序一致。
2、可存储重复元素。
3、有索引。
带索引的方法(特有):
add(int index,E element):在指定位置添加指定元素。
set(int index,E element):将指定元素替换到指定位置。
get(int index):获取指定位置的元素。
remove(int index):删除指定位置的元素。

二、ArrayList集合
特点:底层是数组,查询快(因为数组地址连续)、增删慢(因为每增加一个元素,底层都会调用数组的复制方法arrayCopy(),所以效率低),不同步(多线程)。

三、LinkedList集合
特点:1、底层是链表,查询慢、增删快。
2、包含大量操作首尾元素的方法。
方法:
1、添加元素
在集合开头添加元素:addFrist(E element)、push(E element)
在集合末尾添加元素:addLast(E element)、add(E element)
2、删除元素
删除集合中的第一个元素:removeFrist()、pop()
删除集合中的最后一个元素:removeLast()
3、获取元素
获取集合中的第一个元素:getFrist()
获取集合中的最后一个元素:getLast()

四、Vector集合
特点:底层是数组,同步(单线程,速度慢)。

五、Set集合
Set存储元素不重复的原理:Set在调用add()方法时,add()方法会调用元素的hashCode方法和equals方法,判断元素是否重复。
哈希值:一个由系统随机给出的十进制值,是对象的地址值,一个逻辑地址,不是实际存在的物理地址。

六、LinkedHashSet集合
有序的原因:因为底层是哈希表(数组+链表/红黑树)+链表,链表记录了元素的存储顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值