国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Java Stack與Queue詳解

發(fā)布時(shí)間:2021-07-06 11:13 來(lái)源:腳本之家 閱讀:0 作者:小李子還挺酸 欄目: 開(kāi)發(fā)技術(shù)

目錄

一、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為基數,
        // 返回最近出現位置到棧頂距離,因此為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)有構造方法

從這里可以看到Queue從Collection中繼承了add,remove等方法,但是我們應該盡量使用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í)隊列變成[2,4,6,8,10,12,14,16,18]
        
    }
}

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

因為十進(jìn)制轉二進(jìn)制是每次模2取余直到num=0,然后將余數反轉即可得到轉換的結果,因此可以利用雙向隊列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í)隊列變成[2,4,6,8,10,12,14,16,18]
        
    }
}

Queue是單隊列,Deque是雙向隊列,根據需要使用。

PS:此為學(xué)習筆記,如有錯誤,請友好指正,感謝。

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

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

亚洲偷偷自拍高清| 日本大尺度爱做网站| 伊人久久大香线蕉综合色狠狠| 国产高清女同学巨大乳在线观看| 向日葵视频iOS下载| 中文字幕在线日亚洲9|