LinkedList

1、特点:
重复性:数据可以重复
null值:有
有序性:保证数据插入有序;
插入删除效率高、访问效率低
2、底层源码研究:
底层数据结构:双向链表
构造函数:
基本属性:头结点,尾节点,size 、内部节点类node;
默认值: 无
扩容方式: 链表式扩容
增删改查方法: 删除节点时得判断此节点的位置(头部,中间,尾部)
3、部分重点方法介绍:
LinkedList(Collection <? extends E> elements ) : 构造一个空链表,把集合中的所有元素添加到这个链表中
void addFirst(E element) : 头插
void addLast (E element):尾插
E getFirst();
E getLast(); 获取头或尾
E removeFirst () :
E removeLast () : 删除并返回头部或尾部的元素;
E element() ;检索但不删除此列表的头;
Inteator inteator (int index); 返回一个从指定位置开始的迭代器
ListInteator listInteator(int index); 返回一个从指定位置开始的ListInteator迭代器
boolean offer(E o); 将指定元素添加至列表尾部;
boolean offerFirst(E o) ; 将指定元素添加至列表头部;
E peek() ; 检索但不删除此列表的头;
E peekFirst();
E peekLast();
E poll(); 检索并删除此列表的头
E pollFirst();
E pollLast();
4、思考:
Arraylist和Linkedlist的异同:
相同点:
1、都是List接口下的实现类,具有list提供的类方法;
2、都可以保证元素插入有序;
3,、元素可重复;
4、可以存在null值;
5、线程不安全;
不同点:
1、底层结构:前者为数组,后者为双向链表;
2、特有方法:LinkedList实现了Deque接口;具有一些其他方法;
3、效率:ArrayList查询效率高(o1)、移动 删除效率低,LinkedList添加(o1),删除效率高,访问效率低;
4、使用场景: 查找操作比较多的场景---->ArrayList
修改、添加操作多的场景—>LinkedList

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值