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

ArrayList集合初始化及擴容方式

 更新時間:2023年03月13日 10:32:02   作者:小心!!  
這篇文章主要介紹了關于ArrayList集合初始化及擴容方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

ArrayList集合初始化及擴容

ArrayList 集合

1.默認初始化容量為10(底層先創(chuàng)建了一個長度為0的數(shù)組,當添加第一個元素的時候,初始化容量為10)

2.集合底層為一個Object[]數(shù)組

3.構造方法:

new ArrayList();
new ArrayList(20);

4.ArrayList集合的擴容:原容量的1.5倍。

ArrayList集合的底層是數(shù)組,怎么優(yōu)化?

盡可能的減少擴容。因為數(shù)組擴容效率比較低,建議在使用Arraylist集合的時候預估計元素的個數(shù),給定一個初始化容量。

5.數(shù)組優(yōu)點:檢索效率比較高

6.數(shù)組缺點:隨機增刪元素效率比較低

7.向數(shù)組末尾添加元素,效率很高,不受影響

8.面試官經(jīng)常問的一個問題:

這么多集合中,你用那個集合最多?

答:ArrayList集合

因為往數(shù)組末尾添加元素,對效率不受影響。

另外,我們檢索查找某個元素的操作比較多。

package Collection;

import java.util.ArrayList;
import java.util.List;

/*
ArrayList 集合:
1.默認初始化容量為10(底層先創(chuàng)建了一個長度為0的數(shù)組,當添加第一個元素的時候,初始化容量為10)
2.集合底層為一個Object[]數(shù)組
3.構造方法:
     new ArrayList();
     new ArrayList(20);
4.ArrayList集合的擴容:
    原容量的1.5倍。
    ArrayList集合的底層是數(shù)組,怎么優(yōu)化?
      盡可能的減少擴容。因為數(shù)組擴容效率比較低,建議在使用Arraylist集合的
     時候預估計元素的個數(shù),給定一個初始化容量。
5.數(shù)組優(yōu)點:
     檢索效率比較高
6.數(shù)組缺點:
     隨機增刪元素效率比較低
7.向數(shù)組末尾添加元素,效率很高,不受影響
8.面試官經(jīng)常問的一個問題:
  這么多集合中,你用那個集合最多?
    答:ArrayList集合
    因為往數(shù)組末尾添加元素,對效率不受影響。
    另外,我們檢索查找某個元素的操作比較多。
 */
public class ArrayLisTest01 {
    public static void main(String[] args) {
        List l1=new ArrayList();
        //集合的size方法是獲取當前集合元素的個數(shù),不是獲取集合的容量
        System.out.println(l1.size());

        List l2=new ArrayList(20);
        System.out.println(l2.size());

    }
}

ArrayList擴容機制(原理)

ArrayList擴容的本質就是計算出新的擴容數(shù)組的size后實例化,并將原有數(shù)組內容復制到新數(shù)組中去。(不是原數(shù)組,而是新數(shù)組然后給予數(shù)組對象地址)。

默認情況下,新的容量會是原容量的1.5倍。 新容量=舊容量右移一位(相當于除于2)在加上舊容量

ArrayList 的底層是用動態(tài)數(shù)組來實現(xiàn)的。我們初始化一個ArrayList 集合還沒有添加元素時,其實它是個空數(shù)組,只有當我們添加第一個元素時,內部會調用擴容方法并返回最小容量10,也就是說ArrayList 初始化容量為10。

當前數(shù)組長度小于最小容量的長度時(前期容量是10,當添加第11個元素時就就擴容),便開始可以擴容了,ArrayList 擴容的真正計算是在一個grow()里面,新數(shù)組大小是舊數(shù)組的1.5倍,如果擴容后的新數(shù)組大小還是小于最小容量,那新數(shù)組的大小就是最小容量的大小,后面會調用一個Arrays.copyof方法,這個方法是真正實現(xiàn)擴容的步驟。

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java8新特性之Lambda表達式的使用

    Java8新特性之Lambda表達式的使用

    這篇文章主要介紹了Java8新特性之Lambda表達式的使用,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

    spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程

    Spring Boot支持容器的自動配置,默認是Tomcat,當然我們也是可以進行修改的。這篇文章給大家介紹了spring boot開發(fā)遇到坑之spring-boot-starter-web配置文件使用教程,需要的朋友參考下吧
    2018-01-01
  • Apache?Commons?BeanUtils:?JavaBean操作方法

    Apache?Commons?BeanUtils:?JavaBean操作方法

    這篇文章主要介紹了Apache?Commons?BeanUtils:?JavaBean操作的藝術,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • JAVA寶藏工具hutool的使用

    JAVA寶藏工具hutool的使用

    開發(fā)過程中總是會遇到需要自己自定義工具類的情況,做一些數(shù)據(jù)轉換、字符串操作、日期處理、加解密、編解碼、金額計算等,本文就詳細的介紹有一個工具類hutool的使用,感興趣的可以了解一下
    2021-10-10
  • Springboot使用Logback實現(xiàn)日志配置與異常記錄

    Springboot使用Logback實現(xiàn)日志配置與異常記錄

    默認情況下,SpringBoot內部使用logback作為系統(tǒng)日志實現(xiàn)的框架,將日志輸出到控制臺,不會寫到日志文件。本篇文章主要講解下如何自定義logabck.xml以及對logback文件中配置做一個詳解,需要的可以參考一下
    2022-11-11
  • Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor

    Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor

    這篇文章主要介紹了Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-01-01
  • Java中的interrupted()和isInterrupted()

    Java中的interrupted()和isInterrupted()

    這篇文章主要介紹了Java中的interrupted()和isInterrupted()摸下面文章圍繞interrupted()和isInterrupted()的相關資料展開詳細內容,需要的小伙伴樂意參考下面下面文章具體價紹,希望對大家有所幫助
    2021-11-11
  • JSON反序列化Long變Integer或Double的問題及解決

    JSON反序列化Long變Integer或Double的問題及解決

    這篇文章主要介紹了JSON反序列化Long變Integer或Double的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • springcloud實現(xiàn)注冊中心Eureka

    springcloud實現(xiàn)注冊中心Eureka

    這篇文章主要介紹了springcloud實現(xiàn)注冊中心Eureka,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Spring的編程式事務和聲明式事務詳解

    Spring的編程式事務和聲明式事務詳解

    這篇文章主要介紹了Spring的編程式事務和聲明式事務的相關內容,涉及Spring事務屬性、Spring事務的基本類等知識,需要的朋友可以了解下。
    2017-09-09

最新評論

张家港市| 工布江达县| 金乡县| 望城县| 东乌珠穆沁旗| 六盘水市| 镶黄旗| 凯里市| 石嘴山市| 玉树县| 鞍山市| 大荔县| 大方县| 青冈县| 图木舒克市| 曲松县| 壤塘县| 瓦房店市| 大连市| 扶沟县| 长武县| 清水县| 称多县| 长垣县| 都安| 济源市| 东阿县| 东海县| 城市| 安义县| 霞浦县| 深州市| 会东县| 阳朔县| 肇源县| 汝城县| 蓝山县| 克什克腾旗| 金华市| 江源县| 怀宁县|