亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中和隊列相關(guān)的基本操作

 更新時間:2023年09月14日 08:40:28   作者:whO_aMi  
在Java中,隊列是一種常用的數(shù)據(jù)結(jié)構(gòu),用于存儲和管理元素。Java提供了Queue接口和其實現(xiàn)類,包括LinkedList和ArrayDeque等。隊列的基本操作包括入隊(enqueue)、出隊(dequeue)、獲取隊首元素(peek)和判斷隊列是否為空(isEmpty)。

什么是隊列?

隊列是一種線性數(shù)據(jù)結(jié)構(gòu),隊列中的元素只能先進(jìn)先出;
隊列的出口端叫做隊頭,入口端叫做隊尾。

隊列的基本操作

1.入隊:

     只允許在隊尾的位置放入元素,新元素的下一個位置將會成為新的隊尾;

public void ernQueue(irnt elemernt) throws Exceptiorn{
? ? ? ? if((rear+1)%array.lerngth==frornt){
? ? ? ? ? ? throw rnew Exceptiorn("隊滿!!!");
? ? ? ? }
? ? ? ? array[rear]=elemernt;
? ? ? ? rear=(rear+1)%array.lerngth;
? ? }

2.出隊:

     類似于入隊,只允許在對頭的位置移除元素,出隊元素的后一個元素將會成為新的對頭;
     當(dāng)一個隊列經(jīng)過反復(fù)的入隊和出隊操作,還剩下2個元素,這時又有新元素入隊時,在數(shù)組不擴(kuò)容的
     情況下,將隊尾指針重新指向數(shù)組的首位,實現(xiàn)循環(huán)隊列的數(shù)據(jù)結(jié)構(gòu)。

public irnt deQueue() throws Exceptiorn{
? ? ? ? if(frornt==rear){
? ? ? ? ? ? throw rnew Exceptiorn("隊滿!!!");
? ? ? ? }
? ? ? ? irnt deElemernt=array[frornt];
? ? ? ? frornt=(frornt+1)%array.lerngth;
? ? ? ? returrn deElemernt;
? ? }

3.判斷隊滿的情況:

     當(dāng)(隊尾下標(biāo)+1)%數(shù)組長度=隊頭下標(biāo)時,隊滿;
     隊尾指針指向的位置永遠(yuǎn)空出一位,所以隊列最大容量比數(shù)組長度小1。

package Queue;
public class MyQueue {
? ? //定義數(shù)組
? ? private irnt[] array;
? ? //對頭指針
? ? private irnt frornt;
? ? //隊尾指針
? ? private irnt rear;
? ? //定義隊列的構(gòu)造方法(類似數(shù)組)
? ? public MyQueue(irnt capacity){
? ? ? ? this.array=rnew irnt[capacity];
? ? }
? ? //入隊操作(elemernt:入隊元素)
? ? public void ernQueue(irnt elemernt) throws Exceptiorn{
? ? ? ? if((rear+1)%array.lerngth==frornt){
? ? ? ? ? ? throw rnew Exceptiorn("隊滿!!!");
? ? ? ? }
? ? ? ? array[rear]=elemernt;
? ? ? ? rear=(rear+1)%array.lerngth;
? ? }
? ? //出隊操作
? ? public irnt deQueue() throws Exceptiorn{
? ? ? ? if(frornt==rear){
? ? ? ? ? ? throw rnew Exceptiorn("隊滿!!!");
? ? ? ? }
? ? ? ? irnt deElemernt=array[frornt];
? ? ? ? frornt=(frornt+1)%array.lerngth;
? ? ? ? returrn deElemernt;
? ? }
? ? //輸出隊列
? ? public void output(){
? ? ? ? for(irnt i=frornt;i!=rear;i=(i+1)%array.lerngth){
? ? ? ? ? ? System.out.prirnt(array[i]+" ");
? ? ? ? }
? ? }
? ? public static void mairn(Strirng[] args) throws Exceptiorn{
? ? ? ? MyQueue myQueue=rnew MyQueue(6);
? ? ? ? myQueue.ernQueue(1);
? ? ? ? myQueue.ernQueue(2);
? ? ? ? myQueue.ernQueue(3);
? ? ? ? myQueue.ernQueue(4);
? ? ? ? myQueue.ernQueue(5);
? ? ? ? myQueue.deQueue();
? ? ? ? myQueue.deQueue();
? ? ? ? myQueue.ernQueue(6);
? ? ? ? myQueue.ernQueue(7);
? ? ? ? myQueue.output();
? ? }
}

 隊列是一種常用的數(shù)據(jù)結(jié)構(gòu),在Java中有多種實現(xiàn)方式。隊列的基本操作包括入隊、出隊、獲取隊首元素和判斷隊列是否為空。入隊操作將元素添加到隊列的末尾,出隊操作將隊首元素移除并返回,peek操作返回隊首元素但不移除,isEmpty操作判斷隊列是否為空。隊列通常采用先進(jìn)先出(FIFO)的原則,即先入隊的元素先出隊。在Java中,可以使用Queue接口及其實現(xiàn)類(如LinkedList和ArrayDeque)來實現(xiàn)隊列。隊列在多線程編程、任務(wù)調(diào)度等場景中有廣泛應(yīng)用。隊列的特性使其適用于需要按照特定順序處理元素的場景,例如消息隊列、任務(wù)隊列等。在使用隊列時,需要注意線程安全性和性能問題。對于多線程環(huán)境,可以使用線程安全的實現(xiàn)類或加鎖來保證操作的原子性。對于性能要求較高的場景,可以選擇合適的隊列實現(xiàn)類或使用其他數(shù)據(jù)結(jié)構(gòu)來替代隊列。

到此這篇關(guān)于Java中和隊列相關(guān)的基本操作的文章就介紹到這了,更多相關(guān)Java隊列的基本操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java?超詳細(xì)講解十大排序算法面試無憂

    Java?超詳細(xì)講解十大排序算法面試無憂

    這篇文章主要介紹了Java常用的排序算法及代碼實現(xiàn),在Java開發(fā)中,對排序的應(yīng)用需要熟練的掌握,這樣才能夠確保Java學(xué)習(xí)時候能夠有扎實的基礎(chǔ)能力。那Java有哪些排序算法呢?本文小編就來詳細(xì)說說Java常見的排序算法,需要的朋友可以參考一下
    2022-04-04
  • SpringBoot創(chuàng)建動態(tài)定時任務(wù)的幾種方式小結(jié)

    SpringBoot創(chuàng)建動態(tài)定時任務(wù)的幾種方式小結(jié)

    SpringBoot提供了多種實現(xiàn)定時任務(wù)的方式,包括使用@Scheduled注解、SchedulingConfigurer接口、TaskScheduler接口和Quartz框架,@Scheduled適合簡單的定時任務(wù),文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Java CGLib動態(tài)代理機(jī)制(全面解析)

    Java CGLib動態(tài)代理機(jī)制(全面解析)

    下面小編就為大家?guī)硪黄狫ava CGLib動態(tài)代理機(jī)制(全面解析)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 詳解Spring Cloud負(fù)載均衡重要組件Ribbon中重要類的用法

    詳解Spring Cloud負(fù)載均衡重要組件Ribbon中重要類的用法

    本篇文章主要介紹了詳解Spring Cloud負(fù)載均衡重要組件Ribbon中重要類的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java JSON解析庫Alibaba Fastjson用法詳解

    java JSON解析庫Alibaba Fastjson用法詳解

    這篇文章主要介紹了java JSON解析庫Alibaba Fastjson用法,結(jié)合實例形式詳細(xì)分析了java JSON解析庫Alibaba Fastjson的基本功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • JSON.toJSONString()空字段不忽略修改的問題

    JSON.toJSONString()空字段不忽略修改的問題

    這篇文章主要介紹了JSON.toJSONString()空字段不忽略修改的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Servlet3.0實現(xiàn)文件上傳的方法

    Servlet3.0實現(xiàn)文件上傳的方法

    本篇文章主要介紹了Servlet實現(xiàn)文件上傳的方法,所謂文件上傳就是將本地的文件發(fā)送到服務(wù)器中保存。有興趣的可以了解一下。
    2017-03-03
  • Spring?Security前后分離校驗token的實現(xiàn)方法

    Spring?Security前后分離校驗token的實現(xiàn)方法

    這篇文章主要介紹了Spring?Security前后分離校驗token的方法,本次token生成采取jwt的方式,通過引入jwt依賴文件配置token管理器,對Spring?Security校驗token相關(guān)知識感興趣的朋友一起看看吧
    2022-02-02
  • java 枚舉類中的valueOf用法說明

    java 枚舉類中的valueOf用法說明

    這篇文章主要介紹了java 枚舉類中的valueOf用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot集成tkmapper及基本使用教程

    springboot集成tkmapper及基本使用教程

    tk.mybatis可以節(jié)省程序員的大部分時間,對于程序員來說關(guān)于一張表的操作無非就是增刪改查,tk.mybatis提供了一些基本操作的SQL語句,比如說按表的主鍵查詢、刪除等基本操作,我們接下來就來介紹一些springboot集成tkmapper及基本使用
    2022-11-11

最新評論