订阅专栏
LinkedList是一个双向链表,一般可以把它当成栈和队列使用。详细源码分析看这里。
链表主要维护3个成员:第一个元素;最后一个元素;以及链表长度。
所有方法如下:
总结,除了add和offer方法,其他增删查最后一个元素的方法中,方法名都带last。不带first和last的都是针对第一个元素,如:
peek pop poll push 都针对第一个元素
pop,getLast等找不到会报错。poll peek找不到不报错:
.
增加
加在最前面
void linkedFirst(e) 加在首位
void addFirst(e) ==linkedFirst
void push(e) ==addFirst
//offerFirst(e)
加在最后
void linkLast(e) 加在最后
void addLast(e) ==linkLast
//boolean offerLast(e)
boolean add(e) ==linkLast,true
//boolean offer(e) true
加在其他位置
void linkBefore(e,node) 加在node前面,node是已经在list中的
void add(index, e) 加在index位,index<=size
addAll(index,c) 集合插入index位置
删除
删除第一个
E removeFirst() == 删除并返回,没有则异常
E remove() ==removeFirst
E pop() ==removeFirst
E poll() 删除第一个并返回(没有则null)
E pollFirst() = poll
删除最后
removeLast()
pollLast()
删除指定
//unlink(Node x) 删除x
boolean remove(Object o) 根据值搜索删除这一个,值可以是null。
E remove(index) 删除指定位置这一个,==unlink(node(index))
removeFirstOccurrence(obj) 删除第一次出现的obj
removeLastOccurrence(obj)
修改
set(index, e)
查询
查看第一个
getFrist() 返回第一个,没有则异常
elements() ==getFrist
peek() 偷看第一个,没有则为null
peekFirst() ==peek
查看最后一个
getLast()没有则异常
peekLast()没有则为null
搜索查找
get(index)
int indexOf(obj) 第一次出现索引
int lastIndexOf(obj)
contains(obj)
其他
size()
clear()
boolean isPositionIndex() 判断目标位置在不在链表中
isElementIndex()
void checkPositionIndex(pos) 目标位置在不在链表中,不在会异常
留言与评论(共有 0 条评论) “” |