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

Java中的ArrayList.trimToSize()方法詳解

 更新時(shí)間:2023年11月24日 08:44:41   作者:扛麻袋的少年  
這篇文章主要介紹了Java中的ArrayList.trimToSize()方法詳解,前幾天看了Java?ArrayList,沒(méi)有明白trimToSize()這個(gè)方法是什么意思,所以看了一下源碼并且debug一下自己的一個(gè)例子,明白了其中的含義,需要的朋友可以參考下

ArrayList.trimToSize()方法

在看《Java 核心技術(shù)卷一》時(shí),認(rèn)識(shí)到了trimToSize()這個(gè)方法。

原文內(nèi)容如圖所示。

接下來(lái)拿例子來(lái)參考一下:

在這里插入圖片描述

下文內(nèi)容轉(zhuǎn)載自其他博主blog,講解的很清晰。

前幾天看了Java ArrayList,沒(méi)有明白trimToSize()這個(gè)方法是什么意思,所以看了一下源碼并且debug一下自己的一個(gè)例子,明白了其中的含義。貼在這里。

ArrayList al = new ArrayList(10);
for(int i=0;i<10;i++){
    al.add(i);
}
al.add(1);
al.trimToSize();

例子很簡(jiǎn)單,就是new一個(gè)初始容量為10的ArrayList,之后向里面加入一個(gè)元素。接下來(lái)看看debug的內(nèi)容:

在這里插入圖片描述

可以看到,向ArrayList里面加入10個(gè)元素之后,elementData的內(nèi)容如圖所示。

在這里插入圖片描述

elementData數(shù)組動(dòng)態(tài)增長(zhǎng)到容量為15。這是我們看看ArrayList的源碼:

private void grow(int minCapacity) {
   // overflow-conscious code
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + (oldCapacity >> 1);
    if (newCapacity - minCapacity < 0)
        newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0)
        newCapacity = hugeCapacity(minCapacity);
    // minCapacity is usually close to size, so this is a win:
    elementData = Arrays.copyOf(elementData, newCapacity);
}

oldCapacity = 10,1010(10)右移一位位0101(5),newCapacity = 10 + 5 = 15; 之后調(diào)用trimToSize()方法,再看看debug內(nèi)容:

在這里插入圖片描述

此時(shí)elementData的大小變?yōu)榱?1。也就是說(shuō)這個(gè)方法將elementData的數(shù)組設(shè)置為ArrayList實(shí)際的容量,動(dòng)態(tài)增長(zhǎng)的多余容量被刪除了。

再貼個(gè)trimToSize()方法的源碼:用Arrays.copyOf(T [],int newLength)這個(gè)方法來(lái)截取elementData數(shù)組。

public void trimToSize() {
    modCount++;
    if (size < elementData.length) {
        elementData = Arrays.copyOf(elementData, size);
    }
}

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

相關(guān)文章

  • Java中的內(nèi)存分配圖解

    Java中的內(nèi)存分配圖解

    這篇文章主要介紹了Java中的內(nèi)存分配圖解,Java 程序運(yùn)行時(shí),需要在內(nèi)存中分配空間。為了提高運(yùn)算效率,就對(duì)空間進(jìn)行了不同區(qū)域的劃分,因?yàn)槊恳黄瑓^(qū)域都有特定的處理數(shù)據(jù)方式和內(nèi)存管理方式,需要的朋友可以參考下
    2023-08-08
  • Spring?多數(shù)據(jù)源方法級(jí)別注解實(shí)現(xiàn)過(guò)程

    Spring?多數(shù)據(jù)源方法級(jí)別注解實(shí)現(xiàn)過(guò)程

    多數(shù)據(jù)源管理是Spring框架中非常重要的一部分,它可以提高應(yīng)用程序的靈活性和可靠性,從而更好地滿足業(yè)務(wù)需求,這篇文章主要介紹了Spring?多數(shù)據(jù)源方法級(jí)別注解實(shí)現(xiàn),需要的朋友可以參考下
    2023-07-07
  • iOS多線程介紹

    iOS多線程介紹

    這篇文章主要介紹了iOS多線程的相關(guān)知識(shí),涉及到對(duì)進(jìn)程,線程等方面的知識(shí)講解,本文非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05
  • 淺談Java中的Queue家族

    淺談Java中的Queue家族

    Java中Collection集合有三大家族List,Set和Queue。當(dāng)然Map也算是一種集合類,但Map并不繼承Collection接口。List,Set在我們的工作中會(huì)經(jīng)常使用,通常用來(lái)存儲(chǔ)結(jié)果數(shù)據(jù),而Queue由于它的特殊性,通常用在生產(chǎn)者消費(fèi)者模式中。今天這篇文章將帶大家進(jìn)入Queue家族。
    2021-06-06
  • Java中字符數(shù)組和字符串與StringBuilder和字符串轉(zhuǎn)換的講解

    Java中字符數(shù)組和字符串與StringBuilder和字符串轉(zhuǎn)換的講解

    今天小編就為大家分享一篇關(guān)于Java中字符數(shù)組和字符串與StringBuilder和字符串轉(zhuǎn)換的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • java配置dbcp連接池(數(shù)據(jù)庫(kù)連接池)示例分享

    java配置dbcp連接池(數(shù)據(jù)庫(kù)連接池)示例分享

    java配置dbcp連接池示例分享,大家參考使用吧
    2013-12-12
  • IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無(wú)法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更新、自動(dòng)更新快捷鍵)

    IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無(wú)法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更

    這篇文章主要介紹了IDEA 2020.1 版自動(dòng)導(dǎo)入MAVEN依賴的方法(新版MAVEN無(wú)法自動(dòng)導(dǎo)入/更新POM依賴、MAVEN設(shè)置自動(dòng)更新、自動(dòng)更新快捷鍵),需要的朋友可以參考下
    2020-08-08
  • 解決mybatis批量更新(update foreach)失敗的問(wèn)題

    解決mybatis批量更新(update foreach)失敗的問(wèn)題

    這篇文章主要介紹了解決mybatis批量更新(update foreach)失敗的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11
  • 圖解JVM垃圾內(nèi)存回收算法

    圖解JVM垃圾內(nèi)存回收算法

    這篇文章主要介紹了圖解JVM垃圾內(nèi)存回收算法,由于年輕代堆空間的垃圾回收會(huì)很頻繁,因此其垃圾回收算法會(huì)更加重視回收效率,下面小編就和大家來(lái)一起學(xué)習(xí)一下吧
    2019-06-06
  • 手把手帶你粗略了解Java--類和對(duì)象

    手把手帶你粗略了解Java--類和對(duì)象

    這篇文章主要給大家介紹了關(guān)于java中類和對(duì)象的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08

最新評(píng)論

大厂| 百色市| 福建省| 竹溪县| 芒康县| 长顺县| 方正县| 维西| 腾冲县| 凤台县| 梓潼县| 霍林郭勒市| 龙南县| 收藏| 奉节县| 福安市| 峨边| 泰顺县| 德清县| 唐河县| 武胜县| 长宁县| 简阳市| 商南县| 阳朔县| 和林格尔县| 涞水县| 乌拉特中旗| 黎城县| 临安市| 眉山市| 鸡东县| 松江区| 怀宁县| 葵青区| 读书| 元氏县| 镇原县| 年辖:市辖区| 石嘴山市| 西藏|