真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java集合源碼分析之Queue怎么用

這篇文章將為大家詳細(xì)講解有關(guān)Java集合源碼分析之Queue怎么用,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、虛擬主機(jī)、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、邛崍網(wǎng)站維護(hù)、網(wǎng)站推廣。

超級(jí)接口Queue

隊(duì)列在軟件開(kāi)發(fā)中擔(dān)任著重要的職責(zé),java函數(shù)的調(diào)用用到了棧的技術(shù),在處理并發(fā)問(wèn)題時(shí),BlockingQueue很好的解決了數(shù)據(jù)傳輸?shù)膯?wèn)題。接下來(lái)我們看看Java是如何定義隊(duì)列的吧。

首先,Queue也繼承自Collection,說(shuō)明它是集合家族的一員。Queue接口主要提供了以下方法:

//將元素插入隊(duì)列
boolean add(E e);

//將元素插入隊(duì)列,與add相比,在容量受限時(shí)應(yīng)該使用這個(gè)
boolean offer(E e);

//將隊(duì)首的元素刪除,隊(duì)列為空則拋出異常
E remove();

//將隊(duì)首的元素刪除,隊(duì)列為空則返回null
E poll();

//獲取隊(duì)首元素,但不移除,隊(duì)列為空則拋出異常
E element();

//獲取隊(duì)首元素,但不移除,隊(duì)列為空則返回null
E peek();

超級(jí)實(shí)現(xiàn)類(lèi)AbstractQueue

Queue的定義很簡(jiǎn)單,所以其實(shí)現(xiàn)類(lèi)也很簡(jiǎn)單,用簡(jiǎn)單的代碼做復(fù)雜的事情,值得我們學(xué)習(xí)。

AbstractQueue僅實(shí)現(xiàn)了add、removeelement三個(gè)方法,并且分別調(diào)用了另外一個(gè)僅細(xì)微區(qū)別的方法,我們這里只看其一

//這里我們就明白,對(duì)于有容量限制的,直接調(diào)用offer肯定會(huì)更快
public boolean add(E e) {
    if (offer(e))
        return true;
    else
        throw new IllegalStateException("Queue full");
}

此外,它還實(shí)現(xiàn)了clearaddAll方法,重寫(xiě)這些方法可以使其更符合當(dāng)前場(chǎng)景。

public void clear() {
    while (poll() != null)
        ;
}

public boolean addAll(Collection c) {
    if (c == null)
        throw new NullPointerException();
    if (c == this)
        throw new IllegalArgumentException();
    boolean modified = false;
    for (E e : c)
        if (add(e))
            modified = true;
    return modified;
}

關(guān)于“Java集合源碼分析之Queue怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


當(dāng)前文章:Java集合源碼分析之Queue怎么用
新聞來(lái)源:http://weahome.cn/article/jijjcj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部