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

Java Stack與Queue詳解

 更新時(shí)間:2021年05月11日 11:45:45   作者:小李子還挺酸  
這篇文章主要介紹了Java Stack與Queue詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Java的小伙伴們有很好地幫助,需要的朋友可以參考下

一、Stack

在這里插入圖片描述

示例:

package StackPack;

import java.util.Stack;
public class StackDemo {
    public static void main(String[] args) {
        Stack<Integer> stack=new Stack<>();

        for(int i=0;i<10;i++)
        {
            stack.push(i*2);
        }
        //[0, 2, 3, 4, 6, 8, 12, 14, 16, 18]
        System.out.println(stack.peek());  //18
        System.out.println(stack.search(14));  //以1為基數(shù),
        // 返回最近出現(xiàn)位置到棧頂距離,因此為3
        while(!stack.isEmpty())
        {
            System.out.print(stack.pop()+"\t");
        }
        System.out.println();

        System.out.println(stack.search(1));  //找不到,返回-1


    }
}

二、Queue

由于Queue只是個(gè)接口,因此沒(méi)有構(gòu)造方法

在這里插入圖片描述

從這里可以看到Queue從Collection中繼承了add,remove等方法,但是我們應(yīng)該盡量使用offer替換add,使用poll來(lái)替換remove

使用Queue特有的方法offer,poll的好處是可以通過(guò)判斷返回值判斷操作是否成功完成,而add,remove則會(huì)在失敗時(shí)拋出異常

在這里插入圖片描述

示例:

package QueuePack;

import java.util.*;
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue=new ArrayDeque<>();
        for(int i=0;i<10;i++)
        {
            queue.offer(i*2);
        }

        Iterator<Integer> it=queue.iterator();
        while(it.hasNext())
        {
            System.out.print(it.next()+"\t"); //0	2	4	6	8	10	12	14	16	18
        }
        System.out.println();

        System.out.println(queue.peek()); //0
        System.out.println(queue.poll());  //0,同時(shí)隊(duì)列變成[2,4,6,8,10,12,14,16,18]
        
    }
}

示例:十進(jìn)制轉(zhuǎn)二進(jìn)制

因?yàn)槭M(jìn)制轉(zhuǎn)二進(jìn)制是每次模2取余直到num=0,然后將余數(shù)反轉(zhuǎn)即可得到轉(zhuǎn)換的結(jié)果,因此可以利用雙向隊(duì)列Deque

代碼

package QueuePack;

import java.util.*;
public class QueueDemo {
    public static void main(String[] args) {
        Queue<Integer> queue=new ArrayDeque<>();
        for(int i=0;i<10;i++)
        {
            queue.offer(i*2);
        }

        Iterator<Integer> it=queue.iterator();
        while(it.hasNext())
        {
            System.out.print(it.next()+"\t"); //0	2	4	6	8	10	12	14	16	18
        }
        System.out.println();

        System.out.println(queue.peek()); //0
        System.out.println(queue.poll());  //0,同時(shí)隊(duì)列變成[2,4,6,8,10,12,14,16,18]
        
    }
}

在這里插入圖片描述

Queue是單隊(duì)列,Deque是雙向隊(duì)列,根據(jù)需要使用。

PS:此為學(xué)習(xí)筆記,如有錯(cuò)誤,請(qǐng)友好指正,感謝。

到此這篇關(guān)于Java Stack與Queue詳解的文章就介紹到這了,更多相關(guān)Java Stack與Queue內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java并發(fā)編程之ReentrantLock解析

    Java并發(fā)編程之ReentrantLock解析

    這篇文章主要介紹了Java并發(fā)編程之ReentrantLock解析,ReentrantLock內(nèi)容定義了一個(gè)抽象類Sync,繼承自AQS,而不是自己去繼承AQS,所有對(duì)ReentrantLock的操作都會(huì)轉(zhuǎn)化為對(duì)Sync的操作,需要的朋友可以參考下
    2023-12-12
  • idea.vmoptions 最佳配置方案

    idea.vmoptions 最佳配置方案

    本文介紹了針對(duì)IntelliJ IDEA的優(yōu)化配置建議,包括提升內(nèi)存設(shè)置、啟用G1垃圾回收器、優(yōu)化垃圾回收策略以及調(diào)整網(wǎng)絡(luò)設(shè)置等,旨在提高IDE的性能和響應(yīng)速度,同時(shí),指導(dǎo)用戶如何修改vmoptions文件以應(yīng)用這些配置,并提供了監(jiān)控內(nèi)存使用和插件管理的建議
    2024-09-09
  • java實(shí)現(xiàn)字符串和日期類型相互轉(zhuǎn)換的方法

    java實(shí)現(xiàn)字符串和日期類型相互轉(zhuǎn)換的方法

    這篇文章主要介紹了java實(shí)現(xiàn)字符串和日期類型相互轉(zhuǎn)換的方法,涉及java針對(duì)日期與字符串的轉(zhuǎn)換與運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • java代碼如何實(shí)現(xiàn)存取數(shù)據(jù)庫(kù)的blob字段

    java代碼如何實(shí)現(xiàn)存取數(shù)據(jù)庫(kù)的blob字段

    這篇文章主要介紹了java代碼如何實(shí)現(xiàn)存取數(shù)據(jù)庫(kù)的blob字段問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java正則之貪婪匹配、惰性匹配

    Java正則之貪婪匹配、惰性匹配

    這篇文章主要介紹了Java正則之貪婪匹配、惰性匹配的相關(guān)資料,需要的朋友可以參考下
    2015-03-03
  • 詳解Java如何利用反射提高代碼的靈活性

    詳解Java如何利用反射提高代碼的靈活性

    反射是Java語(yǔ)言的一種特性,它允許程序在運(yùn)行時(shí)動(dòng)態(tài)地獲取類的信息并操作類的屬性、方法和構(gòu)造函數(shù),使得我們的代碼更加靈活和可擴(kuò)展,下面就來(lái)看看Java中反射機(jī)制的具體操作吧
    2023-05-05
  • SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的示例代碼

    SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù)的示例代碼

    這篇文章主要介紹了SpringBoot使用Aspect切面攔截打印請(qǐng)求參數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • 解決idea 項(xiàng)目編譯后沒(méi)有class文件的問(wèn)題

    解決idea 項(xiàng)目編譯后沒(méi)有class文件的問(wèn)題

    這篇文章主要介紹了解決idea 項(xiàng)目編譯后沒(méi)有class文件的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • Java設(shè)計(jì)模式之狀態(tài)模式(State模式)介紹

    Java設(shè)計(jì)模式之狀態(tài)模式(State模式)介紹

    這篇文章主要介紹了Java設(shè)計(jì)模式之狀態(tài)模式(State模式)介紹,本文講解了何時(shí)使用狀態(tài)模式、如何使用狀態(tài)模式等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • 基于Struts文件上傳(FormFile)詳解

    基于Struts文件上傳(FormFile)詳解

    下面小編就為大家?guī)?lái)一篇基于Struts文件上傳(FormFile)詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論

东乡族自治县| 西和县| 会理县| 石门县| 扎兰屯市| 虞城县| 庆安县| 河南省| 台北市| 杭锦旗| 克什克腾旗| 锡林郭勒盟| 宾阳县| 关岭| 梁平县| 桑植县| 洮南市| 祁连县| 当雄县| 琼海市| 方山县| 儋州市| 龙泉市| 鞍山市| 监利县| 旬阳县| 寿光市| 化隆| 连州市| 金寨县| 武穴市| 金华市| 衡南县| 班玛县| 江孜县| 林周县| 贺兰县| 温泉县| 屏边| 彭泽县| 吕梁市|