在Java集合类中,我经常看到如下的代码:
//ArrayDeque
public E pollFirst() {
int h = head;
@SuppressWarnings("unchecked")
E result = (E) elements[h];
// Element is null if deque empty
if (result == null)
return null;
elements[h] = null; // Must null out slot
head = (h + 1) & (elements.length - 1);
return result;
}
< p> head = (h + 1) & (elements.length - 1);
这句话是什么意思?& 操作符在这里起到了什么目的。
我的问题不是 & 如何工作,而是它在这里的用途是什么。
有人能解释一下吗?