java.util.ArrayDeque 类中 addFirst 方法的代码是
public void addFirst(E e) {
if (e == null)
throw new NullPointerException();
elements[head = (head - 1) & (elements.length - 1)] = e;
if (head == tail)
doubleCapacity();
}
在这里,我无法理解的含义
head = (head - 1) & (elements.length - 1)
此外,假设数组大小为 10。head 为 0,tail 为 9(数组已满)。在这种情况下,将在什么索引系统上进行插入?(我的理解是:如果数组已满,则先增加其大小,然后在 arraySize()-1 索引中插入。)