解析Java中的队列和用LinkedList集合模拟队列的方法
API中对队列的说明: public interface Queue<E> extends Collection<E> 在处理元素前用于保存元素的 collection。除了基本的 Collection 操作外,队列还提供其他的插入、提取和检查操作。每个方法都存在两种形式:一种抛出异常(操作失败时),另一种返回一个特殊值(null 或 false,具体取决于操作)。插入操作的后一种形式是用于专门为有容量限制的 Queue 实现设计的;在大多数实现中,插入操作不会失败。 队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。 在java里使用队列可以用LinkedList集合进行模拟
入队列 void addLast(E e); // 将元素插入此列表的结尾 出队列 E removeFirst(); // 移除并返回列表的第一个元素 判空 boolean isEmpty(); // 判断队列是否为空 示例代码
package coreJavaOne; import java.util.LinkedList; import java.util.NoSuchElementException; public class SimulateQueue { private LinkedList<Integer> queue = new LinkedList<Integer>(); public boolean isEmpty() { return this.queue.isEmpty(); } public void enQueue(int data) { this.queue.addLast(data); } public int deQueue() throws NoSuchElementException { return this.queue.removeFirst(); } public static void main(String[] args) { SimulateQueue q = new SimulateQueue(); q.enQueue(1); q.enQueue(2); q.enQueue(3); while (! q.isEmpty()) { int data = q.deQueue(); System.out.println(data); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java double转string
- java – 如何在XSLT之后保留空的XML标签 – 防止将它们折叠
- java – 什么更有效?一个If Else还是一个HashMap?
- JAVA实现JSON后端向前端传递数据
- java – KeyEvent.getKeyText()在OSX中返回特殊字符(例如’
- Spring MVC+FastJson+Swagger集成的完整实例教程
- java – 在dropbox.com上托管一个SQLite .db文件
- java – 我需要将随机生成的数字插入到数组中
- java – Lombok如何生成代码到现有的类?
- Almost Sorted Array(o(nlgn)求解LIS)