LinkedList方法解析
方法如下:
说明:
add()系列
add()和addLast()的区别:
可以看出都是往最后增加元素,区别就是add()多返回了一个boolean。
另外add()还可以同时传入两个元素,分别表示下标和要增加的元素。
addFirst()和addLast()
再往底层看看:
可以看到addFirst()和addLast()底层都是节点,只不过addFirst()是和首节点连接,addLast()是和尾节点连接。
addAll()
addAll()有两个重载的方法,一个参数的是可以直接拼接两个集合。
另外一个两个参数,分别表示下标和要拼接的集合。
需要注意的是,下标是不包含的,如下图:
clear()
清空元送
set()
覆盖指定index下的值
element()
往底层看,原来调用的getFirst(),即返回首个元素
indexOf()
如果存在,indexOf()返回的是该位置索引。
如果不存在,则返回 -1。
contains()
调用了indexOf(),最终返回一个boolean类型的结果。
offer()、offerLast()、offerFirst()
get()、getFirst()、getLast()
方法就应该这样命名,见名知意。
lastIndexOf()
最后一次出现该元素的index位置。
peek()、peekFirst()、peekLast()
见名知意,peek()和peekFirst()都是读取首个元素,peekLast()读取末尾元素。都只是读取,不会改变集合。
poll()、pop()、pollFirst()、pollLast()
poll()和pollFirst()没有区别,弹出首个元素。
pollLast()弹出尾元素。
pop()和poll()的区别:
当头节点为null时,pop()抛出异常,poll()返回null