最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中和隊列相關的基本操作

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

什么是隊列?

隊列是一種線性數據結構,隊列中的元素只能先進先出;
隊列的出口端叫做隊頭,入口端叫做隊尾。

隊列的基本操作

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.出隊:

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

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

3.判斷隊滿的情況:

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

package Queue;
public class MyQueue {
? ? //定義數組
? ? private irnt[] array;
? ? //對頭指針
? ? private irnt frornt;
? ? //隊尾指針
? ? private irnt rear;
? ? //定義隊列的構造方法(類似數組)
? ? 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();
? ? }
}

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

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

相關文章

  • IntelliJ IDEA搜索整個項目進行全局替換(有危險慎用)

    IntelliJ IDEA搜索整個項目進行全局替換(有危險慎用)

    今天小編就為大家分享一篇關于IntelliJ IDEA搜索整個項目進行全局替換(有危險慎用),小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • SpringBoot集成內存數據庫H2的實踐

    SpringBoot集成內存數據庫H2的實踐

    h2是內存數據庫,查詢高效,可以在開發(fā)初期使用它。本文主要介紹了SpringBoot集成內存數據庫H2的實踐,具有一定的參考價值,感興趣的可以了解一下
    2021-09-09
  • 如何測試Spring MVC應用

    如何測試Spring MVC應用

    這篇文章主要介紹了如何測試Spring MVC應用,幫助大家更好的理解和使用spring框架,感興趣的朋友可以了解下
    2020-10-10
  • Java數據類型與運算符詳細代碼示例

    Java數據類型與運算符詳細代碼示例

    變量指的是程序運行時可變的量,相當于開辟一塊內存空間來保存一些數據,類型則是對變量的種類進行了劃分,不同的類型的變量具有不同的特性,這篇文章主要介紹了Java數據類型與運算符的相關資料,需要的朋友可以參考下
    2026-02-02
  • 詳解Java排序算法中的冒泡和選擇排序

    詳解Java排序算法中的冒泡和選擇排序

    這篇文章主要給大家介紹了Java排序算法中的冒泡排序和選擇排序,文中有詳細的圖文解釋和代碼示例,對我們學習Java算法有一定的幫助,感興趣的同學可以參考閱讀下
    2023-06-06
  • java中String字符串刪除空格的七種方式

    java中String字符串刪除空格的七種方式

    在Java中從字符串中刪除空格有很多不同的方法,本文主要介紹了java中String字符串刪除空格的七種方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • 利用Socket.io 實現消息實時推送功能

    利用Socket.io 實現消息實時推送功能

    這篇文章主要介紹了利用Socket.io 實現消息實時推送功能,需要的朋友可以參考下
    2017-12-12
  • Spring Boot自動配置實戰(zhàn)指南

    Spring Boot自動配置實戰(zhàn)指南

    本文深入探討了Spring Boot自動配置這一核心特性,首先介紹了 Spring Boot在Java開發(fā)中的重要地位,以及自動配置的概念和重要性,它通過 “約定優(yōu)于配置” 的理念,大大簡化了開發(fā)過程,提高了開發(fā)效率 ,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • 基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源的示例代碼

    基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源的示例代碼

    這篇文章主要介紹了基于mybatis?plus實現數據源動態(tài)添加、刪除、切換,自定義數據源,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Spring?自定義propertyEditor的示例代碼

    Spring?自定義propertyEditor的示例代碼

    這篇文章主要介紹了Spring?自定義propertyEditor的示例代碼,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論

定西市| 北流市| 敖汉旗| 广汉市| 丰镇市| 松滋市| 宁晋县| 灵川县| 盐城市| 商洛市| 正蓝旗| 通许县| 博罗县| 金华市| 潍坊市| 鹤山市| 崇左市| 普宁市| 天祝| 双城市| 葫芦岛市| 宁都县| 临泉县| 南城县| 濮阳县| 南靖县| 香港| 青海省| 保定市| 神池县| 高平市| 潮州市| 凤城市| 崇信县| 平舆县| 岱山县| 大关县| 通州市| 蓬安县| 大安市| 巴塘县|