Tag: 队列

您应该在哪里使用BlockingQueue实现而不是简单队列实现?

我想我会重新提出我的问题 您应该在哪里使用BlockingQueue实现而不是简单队列实现? 至 BlockingQueue优于队列实现的优点/缺点是什么,考虑速度,并发或其他属性等方面,例如访问最后一个元素的时间。 我使用过这两种队列。 我知道Blocking Queue通常用于并发应用程序。 我正在编写简单的ByteBuffer池,我需要一些ByteBuffer对象的占位符。 我需要最快,线程安全的队列实现。 甚至像ArrayList这样的List实现也具有元素的持续访问时间。 任何人都可以讨论BlockingQueue与Queue vs List实现的优缺点吗? 目前我使用ArrayList来保存这些ByteBuffer对象。 我应该使用哪种数据结构来保存这些对象?

在java中实现队列

在Java中实现队列是一个非常常见的面试问题。 我在线浏览并看到许多实现,他们做了很多花哨的东西,如实现队列接口和编写自己的addLast()和removeFirst()方法。 我的问题是我不能只使用LinkedList()类并使用其预定义的方法addLast和removeFirst方法来做同样的事情? 例如 LinkedList qu=new LinkedList(); qu.add(new Student(“anadkat1”)); qu.add(new Student(“anadkat2”)); qu.add(new Student(“anadkat5”)); System.err.println(qu); qu.removeFirst(); System.err.println(qu); 这给了我完美的结果。 这不够吗?

Java – 当数据超出限制时打印消息?

我有我的代码工作,它不漂亮,但它的工作:)现在我想写一段代码,如果文本文件中有19个或更多的数据,然后显示停止数据加载例如,输入无效输入的消息。 我不知道如何做到这一点,所以任何帮助将不胜感激。 package stackandqueue; import java.util.*; import java.util.Stack; import java.util.Queue; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.LinkedList; import java.util.StringTokenizer; import java.util.Arrays; public class StackAndQueue { public static void main(String[] args) throws IOException { // Create three empty stacks of Bays. // Bay 1 linked list Queue bayoneStack = new LinkedList(); // Bay […]

打印优先级队列的内容

如何让print_queue在java中正常工作? 这是我自己的队列实现。 使用Iterator()工作正常,除了它以随机顺序打印数字。 package data_structures_java ; import java.util.Iterator; import java.util.PriorityQueue ; import java.util.* ; public class Queue_implementation { PriorityQueue actual_queue ; public Queue_implementation(){ actual_queue = new PriorityQueue() ; } public void add(int num){ actual_queue.add(num) ; } public int remove(){ return actual_queue.remove() ; } public int peek(){ if( actual_queue.isEmpty()) return -1 ; else return actual_queue.peek() ; […]

队列没有自然排序

可能重复: 为什么这个奇怪的顺序发生在java的PriorityQueue中? 请看下面的代码: public static void main(String[] args) { Queue q = new PriorityQueue(); q.offer(“car”); q.offer(“airplane”); q.offer(“bicycle”); Iterator i = q.iterator(); while(i.hasNext()) System.out.print(i.next() + ” “); } 有人可以解释为什么输出 airplane car bicycle 代替 airplane bicycle car ? 因为在API中它表示优先级队列的元素是按照它们的自然顺序排序的。

如何在java中访问打印机队列

假设我从MS Word这样的程序中打印了一些文档。 假设我一次选择了4个文档,因此其中三个最终会在打印机队列中等待。 我想访问并阅读有关队列中等待的文档的一些信息。 换句话说,如何访问打印机队列并使用java读取有关任何挂起文件的信息? 有没有办法做到这一点? 如果是这样,我该怎么办? 谢谢您的帮助

按顺序迭代对象队列

我创建了一个包含对象的队列,我希望按照它们放入队列的顺序进行迭代(第一个对象放在队列中,第二个对象放在队列中,第三个对象……) 我在网上看到了一种方法,但是我不确定这是否能保证队列中的对象能够以正确的顺序访问? for(MyObject anObject : queue){ //do someting to anObject… 感谢您的帮助。

ConcurrentLinkedQueue代码说明

http://www.java2s.com/Open-Source/Java-Open-Source-Library/7-JDK/java/java/util/concurrent/ConcurrentLinkedQueue.java.htm 以上是ConcurrentLinkedQueue的源代码。 我无法理解一个条件。 条件(p == q)将如何来自offer方法的以下代码段 public boolean offer(E e) { checkNotNull(e); final Node newNode = new Node(e); for (Node t = tail, p = t;;) { Node q = p.next; if (q == null) { // p is last node if (p.casNext(null, newNode)) { // Successful CAS is the linearization point // for e […]

在Java中阻塞队列有什么好处?

我正在开发一个项目,该项目使用一个队列来保存有关需要发送到远程主机的消息的信息。 在这种情况下,一个线程负责将信息放入队列,另一个线程负责从队列中获取信息并发送它。 第二个线程需要定期检查队列中的信息。 但后来我发现这是轮子的重新发明:)我可以使用阻塞队列来达到这个目的。 在上述应用程序中使用阻塞队列有哪些其他优点? (例如:性能,代码可修改,任何特殊技巧等)

Java:ArrayBlockingQueue与LinkedBlockingQueue

我认为,在大多数情况下, ArrayBlockingQueue性能优于LinkedBlockingQueue 。 但是,当数组中总有足够的空间时就是这种情况……如果它变满,那么它是否会表现得如此之好并不是很可预测,因为它会阻塞试图将数据推入队列的线程。 。 所以,我的问题是:是否有BlockingQueue中间实现? BucketListBlockingQueue说, ArrayListBlockingQueue或BucketListBlockingQueue ? 类似于数组列表的东西,这样队列可以动态增加容量,同时仍然可以通过使用数组最终存储数据获得合理的好处?