如何在java中从队列中删除特定元素(不是优先级队列)
如何从如何在java中从队列中删除特定元素(不是优先级队列),java,queue,Java,Queue,如何从java(非优先级队列)中的队列中删除特定元素。没有删除队列的功能。删除(对象)。请帮我做这件事 Queue<String> queue = new LinkedList<>(); queue.add("hello"); queue.add("world"); queue.add("ranjeet"); Queue Queue=newlinkedlist(); 添加(“你好”); 添加(“世界”); 添加(“ranjeet”); 我想从中删除“世界”。正确队列没
java(非优先级队列)
中的队列
中删除特定元素。没有删除队列的功能。删除(对象)
。请帮我做这件事
Queue<String> queue = new LinkedList<>();
queue.add("hello");
queue.add("world");
queue.add("ranjeet");
Queue Queue=newlinkedlist();
添加(“你好”);
添加(“世界”);
添加(“ranjeet”);
我想从中删除“世界”。正确<代码>队列没有删除特定对象的方法(在特定索引处,或等于提供的某个参数): 队列通常(但不一定)以FIFO(先进先出)方式对元素进行排序。。。无论使用何种顺序,队列的头就是通过调用remove()或poll()删除的元素。在FIFO队列中,所有新元素都插入队列的尾部。其他类型的队列可能使用不同的放置规则。每个队列实现都必须指定其排序属性 原因很简单:
Queue
不是“随机”访问数据结构。它仅支持从head resp中删除元素。尾巴;取决于实施情况
从这个意义上说,答案是:
- 您必须“弹出”队列中的所有条目,直到要删除的条目,然后将它们添加回
- 您可以将底层数据结构更改为允许“随机”删除操作的结构
List<String> strings = new LinkedList<>();
List strings=newlinkedlist();
突然之间,您可以通过索引或“值”删除对象
据我所知,没有结合两个接口(列表和队列)的接口。当然,也有一些实现,比如LinkedList
,实际上就是这样做的。Queue Interface
队列接口仅允许您从队列头部删除元素。
有关API的说明,请参见:
队列数据结构的全部目的是将项目推到尾部,并将其从头部移除(因为真正的队列工作)
您应该使用不同的数据结构/集合对象类型
另一个选项是删除队列中的所有项目,并将它们放在另一个队列中(要删除的项目除外)
最后,另一种方法是创建自己的队列实现,添加额外的方法
链表
linkedlist是一个实现队列接口的实现,但它也实现了其他接口
您可以使用以下方法:
移除(对象o)
删除指定元素的第一个匹配项
从该列表中,如果存在。如果此列表不包含
元素,它是不变的。更正式地说,使用
最低索引i使得(o==null?get(i)==null:o.equals(get(i)))
(如果存在此类元素)。如果此列表包含
指定的元素(或等效元素,如果此列表因此更改
电话号码)
您可以将代码更改为:
LinkedList<String> queue = new LinkedList<>();
LinkedList队列=新建LinkedList();
或
List queue=newlinkedlist();
为什么要使用队列/链接列表?
主要问题是为什么要使用队列/链接列表?
似乎一个基本的清单也适合你想要的东西。
如果要删除中间项,linkedlist不是最合适的
链表
实现列表和队列两个接口。
见:
List<String> queue = new LinkedList<>();