首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Java 容器源码分析之Queue(5)

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方法。虽然也可以用其他的方法来实现,不过具体的实现细节和他们基本上是一样的。
返回列表