Board logo

标题: Java 容器源码分析之Queue(5) [打印本页]

作者: look_w    时间: 2018-12-17 17:46     标题: Java 容器源码分析之Queue(5)

取元素     获取元素主要包括如下几个方法:
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方法。虽然也可以用其他的方法来实现,不过具体的实现细节和他们基本上是一样的。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0