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,因为它比另一个快一点

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();

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

  1. kotlin半生对象_如何在Kotlin中使用Actor实现对象池

    kotlin半生对象 by osha1 由osha1 如何在Kotlin中使用Actor实现对象池 (How to implement an Object-Pool with an Actor in ...

  2. ai中如何插入签名_如何在PDF中插入一个或多个空白页?

    在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...

  3. 让一个图片填满一个控件_如何在Android中实现一个全景图控件(二)

    一.背景 在 如何在Android中实现一个全景图控件(一)中,介绍了项目的一些基本情况(有 demo 演示),如果项目对你有帮助,希望文章赏个赞,项目 star 一下. 项目地址:https://g ...

  4. element 搜索匹配_如何在Element-ui中实现一个远程搜索功能

    如何在Element-ui中实现一个远程搜索功能 发布时间:2021-01-29 14:50:00 来源:亿速云 阅读:87 作者:Leah 这篇文章给大家介绍如何在Element-ui中实现一个远程 ...

  5. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  6. java整数的因式分解_如何在Java中找到整数的质数-因式分解

    java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...

  7. java swing 列表框_如何在Swing中使用列表框?

    下面的示例展示了如何在Java Swing应用程序中使用标准列表框. 使用以下API - JList - 创建标准列表. JList.setSelectedIndex(index); - 选择项目. ...

  8. Java poi 列移动_如何在java xssf中移動列poi

    如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...

  9. java 精确到微妙_如何在Java中以微秒精度测量时间?

    我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...

最新文章

  1. MongDB的安装和基本操作 一(权限设置)
  2. 通过webpack配置vue项目页面title
  3. u-boot2013.01.01 for s5pv210: u-boot启动流程
  4. 使用CancellationToken——而不是Thread.Sleep
  5. 接口和抽象类的区别是什么
  6. asp得到地址栏里?以后的字串
  7. nyoj--325--zb的生日
  8. php二维数组根据某个字段排序的排序(商品按销量或其他字段排序)
  9. 《HiWind企业快速开发框架实战》(2)使用HiWind创建自己的项目
  10. sqlmap自动化注入工具使用浅析
  11. 阿铭Linux_网站维护学习笔记201903019
  12. java中ant_java ant使用详解
  13. tf.nn.tanh 双曲正切曲线
  14. 三层交换机和vrrp协议
  15. 手机显示服务器维护是啥意思,手机系统维护怎么解除_手机显示系统维护是什么意思_游戏吧...
  16. Imagination发布PowerVR软件开发套件和工具包重要更新版本,含光线追踪代码示例...
  17. Nature | 基于细菌构建具有类真核细胞结构和功能的人工细胞
  18. java pdf中插入图片
  19. 推荐系统常用数据集介绍
  20. JavaScriptMVC之快速开发

热门文章

  1. fiddler发送post请求
  2. gatewayproperties 是空_杨丞琳演唱会踩空,从二楼高台掉到一楼,手脚擦伤,引发网友热议...
  3. 中国科学院大学计算机金智,金智-中国科学院大学-UCAS
  4. Segmentaion标签的三种表示:poly、mask、rle
  5. oracle sql last_value,図でイメージするOracle DatabaseのSQL全集 第3回 分析関数
  6. golang cobra powershell补全脚本
  7. 高效管理论坛广告贴的小窍门
  8. IDEA生成可运行jar包
  9. Centos 7初始化脚本
  10. 中美共建大数据创新研究中心