成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ArrayList源碼(刪)

lieeps / 1116人閱讀

摘要:源碼根據(jù)位置移除元素,返回刪除元素根據(jù)元素移除元素直接刪除不返回刪除的元素移除指定范圍的元素移除所有在傳入?yún)⑷爰蟽?nèi)的參數(shù)清空隊(duì)列內(nèi)元素,但隊(duì)列還實(shí)際存在

源碼

// 根據(jù)位置移除元素,返回刪除元素
public E remove(int index) {
    rangeCheck(index);

    modCount++;
    E oldValue = elementData(index);

    int numMoved = size - index - 1;
    if (numMoved > 0)
        System.arraycopy(elementData, index+1, elementData, index,
                         numMoved);
    elementData[--size] = null; // clear to let GC do its work

    return oldValue;
}
// 根據(jù)元素移除元素
public boolean remove(Object o) {
    if (o == null) {
        for (int index = 0; index < size; index++)
            if (elementData[index] == null) {
                fastRemove(index);
                return true;
            }
    } else {
        for (int index = 0; index < size; index++)
            if (o.equals(elementData[index])) {
                fastRemove(index);
                return true;
            }
    }
    return false;
}
// 直接刪除不返回刪除的元素
private void fastRemove(int index) {
    modCount++;
    int numMoved = size - index - 1;
    if (numMoved > 0)
        System.arraycopy(elementData, index+1, elementData, index,
                         numMoved);
    elementData[--size] = null; // clear to let GC do its work
}
// 移除指定范圍的元素
protected void removeRange(int fromIndex, int toIndex) {
    modCount++;
    int numMoved = size - toIndex;
    System.arraycopy(elementData, toIndex, elementData, fromIndex,
                     numMoved);

    // clear to let GC do its work
    int newSize = size - (toIndex-fromIndex);
    for (int i = newSize; i < size; i++) {
        elementData[i] = null;
    }
    size = newSize;
}
// 移除所有在傳入?yún)⑷爰蟽?nèi)的參數(shù)
public boolean removeAll(Collection c) {
    Objects.requireNonNull(c);
    return batchRemove(c, false);
}
// 清空隊(duì)列內(nèi)元素,但隊(duì)列還實(shí)際存在
public void clear() {
    modCount++;

    // clear to let GC do its work
    for (int i = 0; i < size; i++)
        elementData[i] = null;

    size = 0;
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72770.html

相關(guān)文章

  • ArrayList的克隆與toArray

    摘要:概述列表是一款即實(shí)用又常用的數(shù)據(jù)結(jié)構(gòu),用來(lái)存儲(chǔ)線性結(jié)構(gòu)的數(shù)據(jù)。在中對(duì)的支持主要有兩種,也是最常用的兩種。本文主要分析的源碼。的底層主要是基于鏈表來(lái)實(shí)現(xiàn)的。但是返回的卻沒(méi)有這樣的等同關(guān)系。那么其方法返回的只是一個(gè)類型的數(shù)組,而不是類型。 概述 列表(list)是一款即實(shí)用又常用的數(shù)據(jù)結(jié)構(gòu),用來(lái)存儲(chǔ)線性結(jié)構(gòu)的數(shù)據(jù)。在JDK中對(duì)List的支持主要有兩種,也是最常用的兩種。一種是ArrayLi...

    codeKK 評(píng)論0 收藏0
  • Java 實(shí)現(xiàn)簡(jiǎn)單計(jì)算器

    摘要:對(duì)于理論算法不再這累贅了。在查閱資料的時(shí)候發(fā)現(xiàn)算法不管用棧還是正則等等,似乎只處理操作符是的數(shù),這是很不可取的。所以需要先將中綴表達(dá)式轉(zhuǎn)化成后綴并標(biāo)記多位數(shù)的操作符,然后在處理后綴表達(dá)式。 最后一次更新于2019/07/08 效果演示圖 showImg(https://segmentfault.com/img/bVbuIwj?w=388&h=290); 功能與流程 要制作一個(gè)簡(jiǎn)易計(jì)算器...

    thekingisalwaysluc 評(píng)論0 收藏0
  • List&Map&Set的操作和遍歷

    摘要:的操作和遍歷的三大集合即。的實(shí)現(xiàn)類原理比較簡(jiǎn)單,比較復(fù)雜,而其實(shí)是基于的一種實(shí)現(xiàn)。 List&Map&Set的操作和遍歷 Java的三大集合即:Set、List、Map。 Set:代表無(wú)序、不可重復(fù)的集合,常用的有HashSet(哈希表實(shí)現(xiàn))、TreeSet(紅黑樹(shù)實(shí)現(xiàn)); List:代表有序、可以重復(fù)的集合,比較常用的有ArrayList(數(shù)組實(shí)現(xiàn))、LinkedList(鏈表實(shí)現(xiàn)...

    lavnFan 評(píng)論0 收藏0
  • Java編程基礎(chǔ)16——Colletion集合

    摘要:集合的長(zhǎng)度的是可變的,可以根據(jù)元素的增加而增長(zhǎng)。如果元素個(gè)數(shù)不是固定的推薦用集合。線程安全,效率低。相對(duì)查詢慢線程安全的相對(duì)增刪慢數(shù)組結(jié)構(gòu)底層數(shù)據(jù)結(jié)構(gòu)是鏈表,查詢慢,增刪快。線程不安全,效率高。 1_對(duì)象數(shù)組的概述和使用 A:案例演示 需求:我有5個(gè)學(xué)生,請(qǐng)把這個(gè)5個(gè)學(xué)生的信息存儲(chǔ)到數(shù)組中,并遍歷數(shù)組,獲取得到每一個(gè)學(xué)生信息。 import net.allidea.bean.Stu...

    TerryCai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<