Java集合Queue-ArrayDeque有什么作用

本篇內(nèi)容介紹了“Java集合Queue-ArrayDeque有什么作用”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了網(wǎng)站建設(shè)、網(wǎng)站制作,成都網(wǎng)站設(shè)計(jì),一元廣告,成都做網(wǎng)站選創(chuàng)新互聯(lián)公司,貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。

ArrayDeque 的結(jié)構(gòu)是一個(gè)循環(huán)數(shù)組,用作棧比Stack 性能優(yōu)秀,用作隊(duì)列比LinkedList 要好

Java集合Queue-ArrayDeque有什么作用

1 成員變量及構(gòu)造函數(shù)

  1. 成員變量

    因?yàn)槭茄h(huán)數(shù)組,所以本身就是一個(gè)數(shù)組elements來(lái)存儲(chǔ)元素,并且有數(shù)組的容量;而循環(huán)意味著在插入刪除元素的時(shí)候必定有兩個(gè)方向,所以會(huì)有headtail,類似于雙指針。

    Java集合Queue-ArrayDeque有什么作用

  2. 構(gòu)造函數(shù)

    Java集合Queue-ArrayDeque有什么作用

    分析allocateElements ,原理上和HashMap中的計(jì)算容量的算法是差不多的

    Java集合Queue-ArrayDeque有什么作用

    Java集合Queue-ArrayDeque有什么作用

    以上函數(shù)是為了找到大于等于需要長(zhǎng)度的最小2的冪整數(shù)。

2 增加

  1. offer

    Java集合Queue-ArrayDeque有什么作用

  2. add

    Java集合Queue-ArrayDeque有什么作用

  3. push

    Java集合Queue-ArrayDeque有什么作用

可以看到所有關(guān)于新增的操作都是調(diào)用了add 相關(guān)函數(shù),源碼的解釋也如上圖所示。

3 刪除

  1. remove

    Java集合Queue-ArrayDeque有什么作用

  2. pop

    Java集合Queue-ArrayDeque有什么作用

  3. poll

    Java集合Queue-ArrayDeque有什么作用

4 查看

  1. contains

    Java集合Queue-ArrayDeque有什么作用

  2. peek

    Java集合Queue-ArrayDeque有什么作用

5 擴(kuò)容

擴(kuò)容發(fā)生的時(shí)機(jī)在增加中有體現(xiàn),當(dāng)head == tail 的時(shí)候就會(huì)調(diào)用doubleCapacity 進(jìn)行擴(kuò)容

Java集合Queue-ArrayDeque有什么作用

為什么不直接用一次System.arraycopy 來(lái)完成數(shù)組的遷移呢

Java集合Queue-ArrayDeque有什么作用

如果直接一次性全部遷移就會(huì)面臨一個(gè)問(wèn)題,head和tail分別指向哪里呢。

  • 對(duì)于head,增加元素下標(biāo)自減,刪除元素自增;對(duì)于tail,增加元素下標(biāo)自增,刪除元素自減。

  • 一般情況下,head指向的是頭元素,tail指向的是尾元素

基于上述兩方面的考慮,最終的遷移如圖所示。

  • 往頭部增加元素:那么和一開(kāi)始的分析一樣,在element.length - 1 下標(biāo)往小下標(biāo)增加。

  • 刪除頭部元素:那么就是4 = 0,并且head指向5,這里的數(shù)字是指元素而不是下標(biāo)

  • 往尾部增加元素:tail正常往右移動(dòng)

  • 刪除尾部元素:3 = 0,并且tail指向3

“Java集合Queue-ArrayDeque有什么作用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

本文名稱:Java集合Queue-ArrayDeque有什么作用
當(dāng)前地址:http://muchs.cn/article6/jcjhig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、動(dòng)態(tài)網(wǎng)站、做網(wǎng)站自適應(yīng)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)、ChatGPT

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)