取元素 获取元素主要包括如下几个方法:
Java代码 [url=][/url]
[url=][/url]
public E element() { return getFirst(); } public E getFirst() { E x = elements[head]; if (x == null) throw new NoSuchElementException(); return x; } public E peek() { return peekFirst(); } public E peekFirst() { return elements[head]; // elements[head] is null if deque empty } public E getLast() { E x = elements[(tail - 1) & (elements.length - 1)]; if (x == null) throw new NoSuchElementException(); return x; } public E peekLast() { return elements[(tail - 1) & (elements.length - 1)]; } [url=][/url]
这部分代码算是最简单的,无非就是取tail元素或者head元素的值。
关于队列的几种运算方法定义的特别杂乱,很容易让人搞混。如果从一个最简单的单向队列角度来看的话,我们可以把Queue中的enqueue方法对应到addLast方法,因为我们每次添加元素就是在队尾增加。deque方法则对应到removeFirst方法。虽然也可以用其他的方法来实现,不过具体的实现细节和他们基本上是一样的。 |