java如何实例化集合_如何在java中实例化一个Queue对象?
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对象?相关推荐
- kotlin半生对象_如何在Kotlin中使用Actor实现对象池
kotlin半生对象 by osha1 由osha1 如何在Kotlin中使用Actor实现对象池 (How to implement an Object-Pool with an Actor in ...
- ai中如何插入签名_如何在PDF中插入一个或多个空白页?
在编辑或修改PDF文档时,一般都需要新增空白页后再添加文本或图片等内容,那么如何在PDF中插入一个或多个空白页呢? 首先打开极速PDF编辑器,或打开需要编辑的PDF文档后,点击右上角"文档& ...
- 让一个图片填满一个控件_如何在Android中实现一个全景图控件(二)
一.背景 在 如何在Android中实现一个全景图控件(一)中,介绍了项目的一些基本情况(有 demo 演示),如果项目对你有帮助,希望文章赏个赞,项目 star 一下. 项目地址:https://g ...
- element 搜索匹配_如何在Element-ui中实现一个远程搜索功能
如何在Element-ui中实现一个远程搜索功能 发布时间:2021-01-29 14:50:00 来源:亿速云 阅读:87 作者:Leah 这篇文章给大家介绍如何在Element-ui中实现一个远程 ...
- java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧
java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...
- java整数的因式分解_如何在Java中找到整数的质数-因式分解
java整数的因式分解 编程课程中的常见家庭作业/任务之一是关于Prime Factorization. 要求您编写一个程序以找到给定整数的素因子 . 一个数字的素数因子是将精确地除以给定数字的所有素 ...
- java swing 列表框_如何在Swing中使用列表框?
下面的示例展示了如何在Java Swing应用程序中使用标准列表框. 使用以下API - JList - 创建标准列表. JList.setSelectedIndex(index); - 选择项目. ...
- Java poi 列移动_如何在java xssf中移動列poi
如何將現有列數據和格式化到Apache POI中的下一列並將下一列移到右側.如何在java xssf中移動列poi 我試過了. 讓說我的代碼是這樣... XSSFCell oldCell = work ...
- java 精确到微妙_如何在Java中以微秒精度测量时间?
我在Internet上看到应该使用System.nanoTime(),但这对我不起作用-它为我提供了毫秒级的时间.我只需要函数执行前后的微秒,就可以知道需要多长时间.我正在使用Windows XP. ...
最新文章
- MongDB的安装和基本操作 一(权限设置)
- 通过webpack配置vue项目页面title
- u-boot2013.01.01 for s5pv210: u-boot启动流程
- 使用CancellationToken——而不是Thread.Sleep
- 接口和抽象类的区别是什么
- asp得到地址栏里?以后的字串
- nyoj--325--zb的生日
- php二维数组根据某个字段排序的排序(商品按销量或其他字段排序)
- 《HiWind企业快速开发框架实战》(2)使用HiWind创建自己的项目
- sqlmap自动化注入工具使用浅析
- 阿铭Linux_网站维护学习笔记201903019
- java中ant_java ant使用详解
- tf.nn.tanh 双曲正切曲线
- 三层交换机和vrrp协议
- 手机显示服务器维护是啥意思,手机系统维护怎么解除_手机显示系统维护是什么意思_游戏吧...
- Imagination发布PowerVR软件开发套件和工具包重要更新版本,含光线追踪代码示例...
- Nature | 基于细菌构建具有类真核细胞结构和功能的人工细胞
- java pdf中插入图片
- 推荐系统常用数据集介绍
- JavaScriptMVC之快速开发
热门文章
- fiddler发送post请求
- gatewayproperties 是空_杨丞琳演唱会踩空,从二楼高台掉到一楼,手脚擦伤,引发网友热议...
- 中国科学院大学计算机金智,金智-中国科学院大学-UCAS
- Segmentaion标签的三种表示:poly、mask、rle
- oracle sql last_value,図でイメージするOracle DatabaseのSQL全集 第3回 分析関数
- golang cobra powershell补全脚本
- 高效管理论坛广告贴的小窍门
- IDEA生成可运行jar包
- Centos 7初始化脚本
- 中美共建大数据创新研究中心