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

java ArrayList和Vector的區(qū)別詳解

 更新時(shí)間:2016年11月01日 16:24:43   作者:志哥  
這篇文章主要介紹了java ArrayList和Vector的區(qū)別詳解的相關(guān)資料,并附簡(jiǎn)單實(shí)例代碼,需要的朋友可以參考下

 ArrayList和Vector的區(qū)別

相同點(diǎn):

1、ArrayList和Vector都是繼承了相同的父類和實(shí)現(xiàn)了相同的接口

2、底層都是數(shù)組實(shí)現(xiàn)的

3、初始默認(rèn)長(zhǎng)度都為10。

不同點(diǎn):

1、同步性:

Vector中的public方法多數(shù)添加了synchronized關(guān)鍵字,以確保方法同步,也即是Vector線程安全,ArrayList線程不安全。

2、擴(kuò)容不同

內(nèi)部屬性不同,這可能是導(dǎo)致擴(kuò)容方式不同的原因所在。

ArrayList有兩個(gè)屬性,存儲(chǔ)數(shù)據(jù)的數(shù)組elementData,和存儲(chǔ)記錄數(shù)目的size。

Vector有三個(gè)屬性,存儲(chǔ)數(shù)據(jù)的數(shù)組elementData,存儲(chǔ)記錄數(shù)目的elementCount,還有擴(kuò)展數(shù)組大小的擴(kuò)展因子capacityIncrement。

ArrayList的擴(kuò)展方法

//jdk1.8.0_91
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);
  }

可以看出,在滿足擴(kuò)容條件時(shí),擴(kuò)展后數(shù)組大小為原數(shù)組長(zhǎng)度的1.5倍與傳遞參數(shù)中較大者

Vector的擴(kuò)展方法

//jdk1.8.0_91
private void grow(int minCapacity) {
    // overflow-conscious code
    int oldCapacity = elementData.length;
    int newCapacity = oldCapacity + ((capacityIncrement > 0) ?
                     capacityIncrement : oldCapacity);
    if (newCapacity - minCapacity < 0)
      newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0)
      newCapacity = hugeCapacity(minCapacity);
    elementData = Arrays.copyOf(elementData, newCapacity);
  }

可以看出,當(dāng)擴(kuò)容因子大于0時(shí),新數(shù)組長(zhǎng)度為原數(shù)組長(zhǎng)度+擴(kuò)容因子,否則子新數(shù)組長(zhǎng)度為原數(shù)組長(zhǎng)度的2倍。 將上面生成的新數(shù)組長(zhǎng)度與傳遞的參數(shù)長(zhǎng)度作比較,較大者為最終的新長(zhǎng)度。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java中Map的entrySet()使用說明

    Java中Map的entrySet()使用說明

    這篇文章主要介紹了Java中Map的entrySet()使用說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java實(shí)現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件

    java實(shí)現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件

    這篇文章主要介紹了java實(shí)現(xiàn)遠(yuǎn)程連接執(zhí)行命令行與上傳下載文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java RSA加密解密實(shí)現(xiàn)方法分析【附BASE64 jar包下載】

    Java RSA加密解密實(shí)現(xiàn)方法分析【附BASE64 jar包下載】

    這篇文章主要介紹了Java RSA加密解密實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了java基于第三方類庫(kù)javabase64-1.3.1.jar實(shí)現(xiàn)RSA加密解密功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Java 關(guān)鍵字transient與注解@Transient的區(qū)別用途解析

    Java 關(guān)鍵字transient與注解@Transient的區(qū)別用途解析

    在Java中,transient 是一個(gè)關(guān)鍵字,用于聲明一個(gè)字段不會(huì)被序列化,這篇文章給大家介紹了Java 關(guān)鍵字transient與注解@Transient的區(qū)別,感興趣的朋友一起看看吧
    2025-05-05
  • java?webservice超時(shí)時(shí)間設(shè)置方法代碼

    java?webservice超時(shí)時(shí)間設(shè)置方法代碼

    當(dāng)我們使用WebService進(jìn)行調(diào)用時(shí),有時(shí)會(huì)出現(xiàn)超時(shí)的情況,下面這篇文章主要給大家介紹了關(guān)于java?webservice超時(shí)時(shí)間設(shè)置方法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • java中List移除元素的四種方式

    java中List移除元素的四種方式

    本文主要介紹了java中List移除元素的四種方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • SpringBoot高級(jí)配置之臨時(shí)屬性、配置文件、日志、多環(huán)境配置詳解

    SpringBoot高級(jí)配置之臨時(shí)屬性、配置文件、日志、多環(huán)境配置詳解

    這篇文章主要介紹了SpringBoot高級(jí)配置之臨時(shí)屬性、配置文件、日志、多環(huán)境配置,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • 基于SpringBoot和Vue實(shí)現(xiàn)頭像上傳與回顯功能

    基于SpringBoot和Vue實(shí)現(xiàn)頭像上傳與回顯功能

    在現(xiàn)代Web應(yīng)用中,用戶個(gè)性化體驗(yàn)尤為重要,其中頭像上傳與回顯是一個(gè)常見的功能需求,本文將詳細(xì)介紹如何使用Spring Boot和Vue.js構(gòu)建一個(gè)前后端協(xié)同工作的頭像上傳系統(tǒng),并實(shí)現(xiàn)圖片的即時(shí)回顯,需要的朋友可以參考下
    2024-08-08
  • 詳解Spring Cloud Gateway 數(shù)據(jù)庫(kù)存儲(chǔ)路由信息的擴(kuò)展方案

    詳解Spring Cloud Gateway 數(shù)據(jù)庫(kù)存儲(chǔ)路由信息的擴(kuò)展方案

    這篇文章主要介紹了詳解Spring Cloud Gateway 數(shù)據(jù)庫(kù)存儲(chǔ)路由信息的擴(kuò)展方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • Spring、SpringMvc和SpringBoot的區(qū)別及說明

    Spring、SpringMvc和SpringBoot的區(qū)別及說明

    Spring框架提供了全面的Java開發(fā)解決方案,核心包括IOC和AOP,SpringMvc作為其中的WEB層開發(fā)框架,通過復(fù)雜的XML配置管理前端視圖和后臺(tái)邏輯,SpringBoot則簡(jiǎn)化了配置,專注于微服務(wù)接口開發(fā),支持嵌入式服務(wù)器,提高了開發(fā)效率
    2024-10-10

最新評(píng)論

隆昌县| 疏附县| 逊克县| 苗栗市| 广东省| 施甸县| 黄陵县| 措勤县| 屏东县| 大渡口区| 中江县| 章丘市| 义马市| 扎兰屯市| 井冈山市| 公主岭市| 疏勒县| 湘阴县| 瓦房店市| 宣武区| 重庆市| 武隆县| 肇州县| 绥江县| 彰武县| 赤壁市| 鄂托克前旗| 莱阳市| 南投市| 卢湾区| 泸州市| 高雄县| 抚顺市| 封丘县| 周至县| 巩义市| 河西区| 萝北县| 从江县| 息烽县| 乐都县|