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

基于java構(gòu)造方法Vector修改元素源碼分析

 更新時間:2021年09月09日 17:33:41   作者:叫我王員外就行  
本篇文章是關(guān)于ava構(gòu)造方法Vector源碼分析系列文章,本文主要介紹了Vector修改元素的源碼分析,有需要的朋友可以借鑒參考下,希望可以有所幫助

(注意:本文基于JDK1.8)

前言

增刪改查,修改元素,Vector提供了3個方法,包括迭代器中的一個,不過本文只分析Vector自身的兩個修改元素的方法,迭代器中的方法將單獨分析

set(int,E)方法分析

    public synchronized E set(int index, E element) {
        if (index >= elementCount)
            throw new ArrayIndexOutOfBoundsException(index);
 
        E oldValue = elementData(index);
        elementData[index] = element;
        return oldValue;
    }

用于修改某個下標(biāo)的方法,該方法使用synchronized修飾,這是為了保護共享變量elementData被多個線程同時修改,在同一時刻只有一個線程可以執(zhí)行該方法,其它未獲得對象鎖的線程將會阻塞在方法的入口,等待對象鎖的釋放,傳入的參數(shù)index表示要修改哪個下標(biāo)的元素,傳入的參數(shù)element表示要修改成哪個新的元素對象

1、檢查下標(biāo)是否合法

合法的下標(biāo),必須是小于Vector對象持有的elementCount數(shù)的,因為只有0到elementCount-1的下標(biāo)才保存著元素,其它下標(biāo)均會拋出一個ArrayIndexOutOfBoundsException對象,用于提示用戶,傳入的下標(biāo)有問題……

2、獲取當(dāng)前下標(biāo)處已保存的元素對象

使用elementData()方法,傳入下標(biāo)進去即可,獲得的舊元素對象,將臨時保存在局部變量oldValue中

3、將新的元素對象更新到指定下標(biāo)處

只需elementData的下標(biāo)index處,賦值為新的元素對象即可

4、向調(diào)用者返回舊的元素對象

setElementAt(E,int)方法分析

    public synchronized void setElementAt(E obj, int index) {
        if (index >= elementCount) {
            throw new ArrayIndexOutOfBoundsException(index + " >= " +
                                                     elementCount);
        }
        elementData[index] = obj;
    }

除了反人類的將新的元素對象作為第一個參數(shù)外,還有一個重要的區(qū)別是,此方法并不會返回舊的元素對象??!

總結(jié)

1、替換元素是一種特殊的刪除,因為馬上就有新的元素對象又添加進來

2、舊的元素對象還可以使用的話,那set(int,E)替換方法本身會返回舊的元素,使用它很方便

以上就是基于java構(gòu)造方法Vector修改元素源碼分析的詳細內(nèi)容,更多關(guān)于java構(gòu)造方法Vector的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java查找并高亮PDF文本過程解析

    Java查找并高亮PDF文本過程解析

    這篇文章主要介紹了Java查找并高亮PDF文本過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • SpringBoot集成Mybatis實現(xiàn)對多數(shù)據(jù)源訪問原理

    SpringBoot集成Mybatis實現(xiàn)對多數(shù)據(jù)源訪問原理

    本文主要分析討論在SpringBoot應(yīng)用中我們該如何配置SqlSessionFactoryBean對象,進而實現(xiàn)對多個不同的數(shù)據(jù)源的操縱,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java 實現(xiàn)鏈表結(jié)點插入

    Java 實現(xiàn)鏈表結(jié)點插入

    這篇文章主要介紹了Java 實現(xiàn)鏈表結(jié)點插入操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • IDEA快速搭建spring?boot項目教程(Spring?initializr)

    IDEA快速搭建spring?boot項目教程(Spring?initializr)

    這篇文章主要介紹了IDEA快速搭建spring?boot項目教程(Spring?initializr),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實現(xiàn)潛艇大戰(zhàn)游戲源碼

    java實現(xiàn)潛艇大戰(zhàn)游戲源碼

    潛艇大戰(zhàn)游戲相信大家都玩過,是一款非常有趣的小游戲,那么基于代碼是如何實現(xiàn)的呢?今天小編給大家?guī)硪黄坛處椭蠹覍W(xué)習(xí)java實現(xiàn)潛艇大戰(zhàn)游戲,感謝的朋友一起看看吧
    2021-06-06
  • JAVA多線程之JDK中的各種鎖詳解(看這一篇就夠了)

    JAVA多線程之JDK中的各種鎖詳解(看這一篇就夠了)

    多線程編程可以說是在大部分平臺和應(yīng)用上都需要實現(xiàn)的一個基本需求,下面這篇文章主要給大家介紹了關(guān)于JAVA多線程之JDK中各種鎖的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Java實現(xiàn)快速生成詞云圖的示例代碼

    Java實現(xiàn)快速生成詞云圖的示例代碼

    詞云(Word?Cloud),又稱文字云、標(biāo)簽云(Tag?Cloud)、關(guān)鍵詞云(Keyword?Cloud),是對文本信息中一定數(shù)量的關(guān)鍵詞出現(xiàn)的頻率高低情況的一種可視化展現(xiàn)方式。本文將用Java代碼實現(xiàn)快速生成詞云圖,需要的可以參考一下
    2023-02-02
  • Java實現(xiàn)文件壓縮為zip和解壓zip壓縮包

    Java實現(xiàn)文件壓縮為zip和解壓zip壓縮包

    這篇文章主要為大家介紹了Java如何實現(xiàn)將文件壓縮為zip以及解壓zip壓縮包,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下
    2022-06-06
  • Java Array與ArrayList區(qū)別詳解

    Java Array與ArrayList區(qū)別詳解

    這篇文章主要介紹了Java Array與ArrayList區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 一小時迅速入門Mybatis之bind與多數(shù)據(jù)源支持 Java API

    一小時迅速入門Mybatis之bind與多數(shù)據(jù)源支持 Java API

    這篇文章主要介紹了一小時迅速入門Mybatis之bind與多數(shù)據(jù)源支持 Java API,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論

深泽县| 合水县| 莱阳市| 临海市| 蓝田县| 师宗县| 炎陵县| 西昌市| 天等县| 翁源县| 措美县| 隆昌县| 宁安市| 乐至县| 瑞安市| 衢州市| 阿巴嘎旗| 桃园县| 河曲县| 高要市| 获嘉县| 阿勒泰市| 岐山县| 宜兰县| 鞍山市| 龙泉市| 五原县| 德保县| 阳西县| 临泉县| 瓦房店市| 二手房| 海晏县| 霞浦县| 沛县| 溧阳市| 景谷| 青河县| 吉安市| 锡林郭勒盟| 永城市|