java如何实例化集合_如何在java中实例化一个Queue对象?

在Java中,由于Queue是一个接口,无法直接实例化。通常选择实现Queue接口的类,如LinkedList、ArrayBlockingQueue等。此外,可以创建自定义类实现Queue接口或使用匿名内部类。示例代码展示了如何使用LinkedList实例化Queue。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Queue是一个接口,这意味着你不能直接构造一个Queue 。

最好的select是构造一个已经实现Queue接口的类,如下所示: AbstractQueue , ArrayBlockingQueue , ConcurrentLinkedQueue , DelayQueue , DelayQueue , LinkedList , PriorityBlockingQueue , PriorityQueue或SynchronousQueue 。

另一种方法是编写自己的类来实现必要的队列接口。 这是不必要的,除非在极less数情况下,你希望做一些特别的事情,同时为Queue的其余部分提供一个Queue 。

public class MyQueue implements Queue { public T element() { ... your code to return an element goes here ... } public boolean offer(T element) { ... your code to accept a submission offer goes here ... } ... etc ... }

更less使用的替代方法是构造一个实现Queue的匿名类。 你可能不想这样做,但为了覆盖所有的基础,它被列为选项。

new Queue() { public Tree element() { ... }; public boolean offer(Tree element) { ... }; ... };

Queue是一个接口。 除非通过匿名内部类,否则不能直接实例化接口。 通常情况下,这不是你想要做的收集。 相反,select一个现有的实现。 例如:

Queue q = new LinkedList();

要么

Queue q = new ArrayDeque();

通常情况下,您会根据您感兴趣的性能和并发性特征select一个集合实现。

Queue qe=new LinkedList(); qe.add("b"); qe.add("a"); qe.add("c");

Queue是一个界面,你不能像你所做的那样创build它的实例

队列是一个接口,你不能明确地构造一个队列,你将不得不实例化它的一个实现类。 就像是:

Queue linkedList = new LinkedList();

这里是关于这个主题的Java教程的链接。

队列是java中的一个接口,你不能这样做。

相反,你有两个select:

选项1:

Queue Q = new LinkedList<>();

选项2:

Queue Q = new ArrayDeque<>();

我build议使用option2,因为它比另一个快一点

ByzWn.png

Queue接口通过额外的插入,提取和检查操作来扩展java.util.Collection,如下所示:

+offer(element: E): boolean // 插入一个元素

+poll(): E // 检索元素,如果队列为空则返回NULL

+remove(): E // 检索并删除元素,如果队列为空则抛出exception

+peek(): E // 检索但不移除此队列的头部,如果此队列为空,则返回null。

+element(): E // 检索但不移除此队列的头部,如果te队列为空,则抛出exception。

示例实现队列的代码:

java.util.Queue queue = new LinkedList<>(); queue.offer("Hello"); queue.offer("StackOverFlow"); queue.offer("User"); System.out.println(queue.peek()); while (queue.size() > 0){ System.out.println(queue.remove() + " "); } //Since Queue is empty now so this will return NULL System.out.println(queue.peek());

输出代码:

Hello Hello StackOverFlow User null

Java中的队列被定义为一个接口,许多随时可用的实现作为JDK版本的一部分存在。 这里有一些: LinkedList ,Priority Queue,ArrayBlockingQueue,ConcurrentLinkedQueue,Linked Transfer Queue, Synchronous Queue等

所以你可以创build这些类中的任何一个,并把它作为队列引用。 例如

import java.util.LinkedList; import java.util.Queue; public class QueueExample { public static void main (String[] args) { Queue que = new LinkedList(); que.add("first"); que.offer("second"); que.offer("third"); System.out.println("Queue Print:: " + que); String head = que.element(); System.out.println("Head element:: " + head); String element1 = que.poll(); System.out.println("Removed Element:: " + element1); System.out.println("Queue Print after poll:: " + que); String element2 = que.remove(); System.out.println("Removed Element:: " + element2); System.out.println("Queue Print after remove:: " + que); } }

您也可以实现自己的自定义队列实现队列接口。

Queue是java中的一个接口,你不能这样做。 尝试:

Queue Q = new LinkedList();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值