Queue 源码分析
Queue<Integer> queue = new LinkedList<>();
boolean add = queue.add(1);
Integer element = queue.element();
boolean offer = queue.offer(2);
Integer peek1 = queue.peek();
Integer poll = queue.poll();
Integer remove = queue.remove();⭐ add
// 添加元素
public boolean add(E e) {
linkLast(e);
return true;
}
// 往链表最后添加
void linkLast(E e) {
final Node<E> l = last;
final Node<E> newNode = new Node<>(l, e, null);
last = newNode;
// 当链表为空时,将新创建的node 作为第一个节点,否则做为其后驱节点,并将size ++
if (l == null)
first = newNode;
else
l.next = newNode;
size++;
modCount++;
}⭐ element
⭐ offer
⭐ peek
⭐ poll
⭐ remove
Last updated