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,因為它比另一個快一點

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539606.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539606.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539606.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode 121 股票買賣問題系列

描述&#xff1a; 給一些列數字&#xff0c;表示每條股票的價格&#xff0c;如果可以買賣一次&#xff08;不能同一天買和賣&#xff09;&#xff0c;求最大利益&#xff08;即差最大&#xff09;。 其他三道問題是&#xff0c;如果能買賣無限次&#xff0c;買賣兩次&#xff0…

Mybatis-jar-lib

csdn的下載好像和我有仇&#xff0c;上傳資源不斷提示&#xff1a;請您先登錄 下載&#xff1a;http://pan.baidu.com/s/1pL2BAzT asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar mybatis-3.1.1.jar ----以上mybatis的--- log4j-1.2.16.jar ----以上log4j日志--…

java使用隊列實現棧思路_算法面試:隊列實現棧的方案

聲明&#xff1a;碼字不易&#xff0c;轉載請注明出處&#xff0c;歡迎文章下方討論交流。前言&#xff1a;Java數據結構與算法專題會不定時更新&#xff0c;歡迎各位讀者監督。本篇介紹的是如何用兩個隊列實現棧的問題。這道題作為上一篇文章算法面試&#xff1a;棧實現隊列的…

Uber如何使用go語言創建高效的查詢服務

在2015年初我們創建了一個微服務&#xff0c;它只做一件事&#xff08;也確實做得很好&#xff09;就是地理圍欄查詢。一年后它成了Uber高頻查詢&#xff08;QPS&#xff09;服務&#xff0c;本次要講的故事就是我們為什么創建這個服務&#xff0c;以及編程語言新秀Go如何幫我們…

centos7:塔建pure_ftpd虛擬用戶

2019獨角獸企業重金招聘Python工程師標準>>> 1.下載pure_ftpd&#xff0c;上傳服務器,目錄路徑:/usr/local/src/ 下載地址:https://pan.baidu.com/s/1kWe8FAn 2.安裝pure_ftpd cd /usr/local/srctar -xjf pure-ftpd-1.0.36.tar.bz2cd pure-ftpd-1.0.36./configure -…

java.lang.module_如何修復“java.lang.module.FindException:module java.se.ee not found”錯誤

我正在嘗試打包我的kivy應用程序(python3)&#xff0c;但是當我運行命令buildozer -v android debug時&#xff0c;看到這個錯誤# Cwd /home/javier/.buildozer/android/platform/android-sdkError occurred during initialization of boot layerjava.lang.module.FindExceptio…

寒武紀芯片——有自己的SDK,支持tf、caffe、MXNet

寒武紀芯片產品中心>智能處理器IP智能處理器IP MLU智能芯片 軟件開發環境 Cambricon-1A 高性能硬件架構及軟件支持兼容Caffe、Tensorflow、MXnet等主流AI開發平臺&#xff0c;已多次成功流片 國際上首個成功商用的深度學習處理器IP產品&#xff0c;可廣泛應用于計算機視覺、…

maven ssm框架 mysql_SSM框架(IDEA+Spring+SpringMVC+Maven+Mybatis+MySQL)

【實例簡介】SSM框架(IDEASpringSpringMVCMavenMybatisMySQL),搭建SSM框架&#xff0c;利用mybatis-plus插件自動生成數據庫相關代碼。【實例截圖】【核心代碼】0d399d99-f108-4aaa-9c81-35b505c86e8a└── SSMManager├── pom.xml├── sql│ └── test.sql└── src…

spring框架的引入

spring框架給程序開發帶來了春天&#xff0c;在很多項目里&#xff0c;可能不用struts&#xff0c;不用hibernate&#xff0c;但往往都有spring。 why&#xff1f; 因為每個項目都會涉及到對象的創建和對象之間的依賴。 一、傳統的MVC開發 mvc的項目框架結構&#xff1a;Enti…

Java編程作業體會_Java作業的幾點總結感想

本次博客主要是總結近幾次作業&#xff0c;交流一下自己的感受。本次作業主要是對近幾次Java課程的鞏固作業&#xff0c;第一次作業主要是一些基礎的題目&#xff0c;包括選擇循環等一些基本語句&#xff0c;其目的在于掌握java一些基本知識&#xff0c;感受出Java與其他語言有…

基于百度語音識別API的Python語音識別小程序

一、功能概述 實現語音為文字&#xff0c;可以擴展到多種場景進行工作&#xff0c;這里只實現其基本的語言接收及轉換功能。 在語言錄入時&#xff0c;根據語言內容的多少與停頓時間&#xff0c;自動截取音頻進行轉換。 工作示例&#xff1a; 二、軟件環境 操作系統&#xff1a…

spring專業術語了解

組件/框架設計 侵入式設計 引入了框架&#xff0c;對現有的類的結構有影響&#xff1b;即需要實現或繼承某些特定類。 例如&#xff1a;Struts框架 非侵入式設計 引入了框架&#xff0c;對現有的類結構沒有影響。 例如&#xff1a;Hibernate框架 / Spring框架 控制反轉: In…

java修改ldap用戶密碼_LDAP 用戶更改自己的密碼

LDAP中采用了ACL的權限控制。在/etc/openldap/slapd.conf文件中&#xff1a;## See slapd.conf(5) for details on configuration options.# This file should NOT be world readable.#include/etc/openldap/schema/corba.schemainclude/etc/openldap/schema/core.schemainclud…

Spring第三篇【Core模塊之對象依賴】

tags: Spring 前言 在Spring的第二篇中主要講解了Spring Core模塊的使用IOC容器創建對象的問題&#xff0c;Spring Core模塊主要是解決對象的創建和對象之間的依賴關系&#xff0c;因此本博文主要講解如何使用IOC容器來解決對象之間的依賴關系&#xff01; 回顧以前對象依賴 我…

spring框架結構介紹

Spring提供了一站式解決方案&#xff1a; 1&#xff09; Spring Core spring的核心功能&#xff1a; IOC容器, 解決對象創建及依賴關系 2&#xff09; Spring Web Spring對web模塊的支持。 -->可以與struts整合,讓struts的action創建交給spring -->spring mvc模式 3…

java通過J2C獲取用戶名密碼_WAS服務器上的J2C別名有什么用途?

這是我LdapTemplate類 公共LdapTemplate getLdapTemplete(字符串ldapID) {WAS服務器上的J2C別名有什么用途&#xff1f;if (ldapID.equalsIgnoreCase(Constants.LDAP1)){if (ldapTemplate1 null){try{PasswordCredential passwordCredential j2cAliasUtility.getAliasDetails…

百度坐標轉換API使用

http://api.map.baidu.com/geoconv/v1/?coords121.54759,29.870724&from1&to5&aksGSOaO07WkRHHiCRxxbSQVBn 前提&#xff1a;121.54759,29.870724 是由手機硬件或谷歌地圖獲取的 錯誤的方法一&#xff1a; function standard2china(lng,lat){//http://api.map.ba…

Java語言所有異常類均繼承自_Java將運行錯誤分為兩類:(__)和(__), 其對應的類均派生自(__)類;...

【單選題】設 x,y 均為已定義的類名,下列聲明對象x1的語句中正確的是( )【判斷題】構造函數的方法名可以由編程人員任意命名。【單選題】能夠實現對原文的鑒別和不可否認性的認證技術是( )。【單選題】設有定義語句int a[]{66,88,99}; 則以下對此語句的敘述錯誤的是( )。【判斷…

Quartz業務類無法注入Spring對象問題

tags: 解決錯誤, titile: Quartz業務類無法注入Spring對象問題 Quartz業務類無法注入Spring對象問題 在剛開始遇到的時候還以為是Spring配置哪里錯誤了&#xff0c;結果搞了那么久&#xff0c;才知道Quartz與Spring注入對象是不關聯的。。 因為Quartz的業務Job對象是由Quartz來…

如何解決ajax跨域問題

原文&#xff1a;http://www.congmo.net/blog/2012/06/27/ajax-cross-domain/ 跨域問題 起 因是這樣的&#xff0c;為了復用&#xff0c;減少重復開發&#xff0c;單獨開發了一個用戶權限管理系統&#xff0c;共其他系統獲取認證與授權信息&#xff0c;暫且稱之為A系統&#xf…