【java队列 Queue】教程文章相关的互联网学习教程文章

用Java实现队列的最快方法【代码】

我想知道我应该对这段代码做些什么改变以减少它的执行时间.import java.util.*;public class ExamPeekableQueueImpl <E extends Comparable<E>> implements ExamPeekableQueue<E> {LinkedList<E> li = new LinkedList<E>();public ExamPeekableQueueImpl(){}public void enqueue(E e){if(li.isEmpty()){li.add(0, e);}elseli.add(e);}public E dequeue(){li.pollFirst();return null;}public void printlist(){System.out.println(...

5、链表队列(java实现)【代码】【图】

1、图例2、链表节点public class Node<T> {public T data;public Node next; }3、具体实现public class LinkQueue<T> {private static Node head;private static Node tail;private static int size;/*** 初始化*/public void initQueue() {Node node = new Node();node.data = null;node.next = null;head = tail = node;size = 0;}/*** 是否空** @return*/public static boolean isEmpty() {return head == tail;}/*** 入队列** ...

关于Java的垃圾收集器如何工作的混淆(节点队列)【代码】

参见英文答案 > What is a NullPointerException, and how do I fix it? 12个所以我一直在尝试用Java实现LinkedList,Stack,Queue. 对于每一个我正在使用节点类,现在我真的不想讨论我的实现是如何,因为我知道有更好的方法来做到这一点,我只想关注我的问题.public class Node<E> {private E data;private Node<E> next;private Node<E> prev;public Node(E data) {this.data = data;this.next = ...

在Java 8中耗尽队列的惯用方法是什么?【代码】

说我有一个队列,我想用尽它.我会这样做的方式是这样的void emptyQueue(Queue<T> q) {T i;while ((i = q.poll()) != null)consume(i); }但这感觉就像一种古老的方法. 我想要更像forEach方法的东西.它当然是存在的 – Queue是一个集合 – 但它迭代元素,而不是消耗它们. 理想情况下,我会喜欢Queue上的pollEach方法 – 但我似乎找不到合适的东西. 你是怎么写这种代码的?解决方法:您可以使用自己的生成器调用队列上的poll():Stream.g...

适用于Java,PHP和Python的开源队列

我目前正在市场上为我们系统中的工作建立一个新的队列系统.我尝试过beanstalk,但它无法跟上负载.我正在寻找一个简单的系统来启动和运行,我可以从生产者那里放入数据,让消费者使用Java,PHP和Python来提取数据并进行处理. 理想情况下,我希望看到以下功能: 工作验证 – >只有当我将它们标记为已完成时才会从队列中删除作业(如果失败,我不必将作业重新放入) 优先事项 – >优先考虑工作的能力 多个频道 – >能够拥有一个可以使用单独的...

用Java创建一个队列数组【代码】

我正在编写自己的PriorityQueue类,我有:private Queue<E>[] queues;public PriorityQueue(int maxSize) {queues = new Queue[maxSize+1]; size = maxSize; }这个编译,但当我在priorityQueue上调用.add时,我收到此错误:java.lang.NullPointerExceptionat PriorityQueue.add(PriorityQueue.java:13)这里补充:public void add(E item, int priority) {queues[priority].offer(item); }解决方法:你需要初始化你的队列:public Prior...

java – 创建一个不允许重复元素的队列,并且应该允许基于索引的检索

我想创建一个不允许重复元素的队列,我应该能够根据索引访问此队列的元素.请让我知道我应该如何实现这个?解决方法:很明显,Java没有与您的规范和要求相匹配的确切数据结构.最符合您要求的可能是LinkedHashSet.它基本上是一个Set(匹配您的唯一项目要求),其元素以插入顺序(如队列)保存,并且通过索引获取元素,您可以使用set.toArray ()获取一个数组或从集合中创建一个列表(但是它会花费一些额外的内存).

java – Spring-AMQP重新队列消息计数基于JVM吗?

我正在寻找rabbitmq文档,似乎rabbitmq不处理消息重新传递计数.如果我要手动ACK / NACK消息,我需要在内存中保留重试计数(例如,通过使用correlationId作为映射中的唯一键),或者通过在消息中设置我自己的头,并重新传递它(因此把它放在队列的末尾) 然而,这是弹簧处理的情况.具体来说,我指的是RetryInterceptorBuilder.stateful().maxAttempts(x).这个计数特定于JVM,还是以某种方式操纵消息? 例如,我有一个部署到2台服务器的Web应用程序...

java – 持久性队列实现

我在JDJ http://java.sys-con.com/node/415321上阅读了一篇关于Java处理批处理的文章.该文章提到使用持久性队列作为批量更新程序,而不是立即向数据库发送单独的插入或更新.作者没有给出这个概念的具体例子,所以我用谷歌搜索了持久性队列,但没有提出太多.有谁知道这个好例子?解决方法:看一下之前的Stackoverflow问题: Producer/Consumer threads using a Queue 第一个答案是使用ExecutorService实现生产者 – 消费者(这是你想要的...

java – Websphere消息队列多线程

我们是后端处理器并使用JMS MQ进行编程.我们有2个队列.一个用于获取消息,另一个用于发送消息.所有银行用户都会通过他们的IB,MB等将消息发送到Q1.我们从Q1接收消息并处理它,然后我们向Q2发送消息. 目前我们不使用多线程.我们能否为此使用多线程或单线程就足够了.因为我们逐个从Q1获取消息并处理它. 如果问题不可理解,请回复我.请有人帮助我.解决方法:是的,JMS允许同一队列中的多个读取器.您可以通过多线程,多个应用程序实例或提取消...

java – Executors.newSingleThreadExecutor() – 如何查看队列中有多少任务【代码】

我在我的代码中使用Executors.newSingleThreadExecutor().我想监视队列中的任务数量,以检查处理器是否没有超载消息.如何才能获得许多未完成的指定任务?我期待这样的事情:ExecutorService executor = Executors.newSingleThreadExecutor(); executor.submit(new Runnable() {...}); executor.submit(new Runnable() {...}); executor.submit(new Runnable() {...}); // do something and get 3 ... // do something and get 2 ......

java swing清除事件队列【代码】

是否可以以标准方式执行此操作? 这是场景. >开始在EDT中做一些昂贵的事情(EDT被阻止,直到昂贵的操作结束).>当EDT被阻止时,用户继续单击/拖动鼠标按钮.所有鼠标操作都记录在某处.>当EDT是免费的(用昂贵的东西完成)时,它开始处理鼠标事件. 我在步骤3中想要的是丢弃堆积的鼠标事件.在EDT免费之后,任何新的鼠标事件都应该以通常的方式处理. 关于如何实现这一点的任何想法. PS:我不可能阻止EDT被阻止(我不控制程序中某些模块的行为). ...

while循环和队列的奇怪java行为【代码】

我有while(true)循环的奇怪行为.这是代码: 作为班级成员,我有:static Queue<Object> response = new LinkedList<Object>();……和一个功能:private void read() {while (true){System.out.println("foo");if(!(response.isEmpty())){if((Boolean)response.peek() == true){view.dispose();LogInControler controler= new LogInControler();disableMasterLogin();response.poll();return;}else if((Boolean)response.poll() == f...

Java queue队列【图】

队列通常(但并非一定)以 FIFO(先进先出)的方式排序各个元素。不过优先级队列和 LIFO 队列(或堆栈)例外,前者根据提供的比较器或元素的自然顺序对元素进行排序,后者按 LIFO(后进先出)的方式对元素进行排序。无论使用哪种排序方式,队列的头 都是调用 remove() 或 poll() 所移除的元素。在 FIFO 队列中,所有的新元素都插入队列的末尾。其他种类的队列可能使用不同的元素放置规则。每个 Queue 实现必须指定其顺序属性。在处...

Java实现循环队列【代码】

一、分析队列是一种先进先出的线性表,它只允许在表的一端进行插入,而在另一端删除元素。允许插入的一端称为队尾,允许删除的一端称为队头。循环队列是一种以顺序存储结构表示的队列,为了解决“假溢出”问题而将它设计成头尾相接的循环结构,它的基本操作如下:1、初始化循环队列2、销毁循环队列3、清空循环队列4、检测循环队列是否为空5、返回循环队列的元素个数6、返回循环队列头元素7、向队尾插入元素8、删除并返回队头元素9、...