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

Java實現(xiàn)更新順序表中的指定元素的示例

 更新時間:2023年06月07日 11:32:08   作者:酒國  
本文主要介紹了Java實現(xiàn)更新順序表中的指定元素的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、思路

1.定義一個 pos 變量為要更新的位置,定義一個 value 變量為更新后的數(shù)值.
2.順序表不能是空的,就肯定不可以更新元素.
3.pos位置要合法,要保證 pos 位置是處在順序表范圍內(nèi)的.
4.更新功能不需要考慮擴容,因為不涉及到元素的增減.
5.更新的之前先獲取到 pos 位置的下標,更新的時候直接將 value 賦值給 pos 位置即可.

二、圖解

當前 pos 指向的是 2 下標,即 2 下標就是接下來要更新元素的位置,value 等于 100,即為接下來 pos 位置會更新為 100 。

更新后的圖示如下圖展示:

可以看到當前的順序表中的元素依然是 4 個(沒有改變),但是在 2 下標位置的元素已經(jīng)改變了。

1、pos 位置不合法的情況

如上述圖片展示出來的情況,pos 位置不能超過順序表長度不能是負數(shù)下標。

2、順序表是空的情況

在當前的數(shù)組中沒有任何的元素,即為順序表是空的情況。

之前說過了,在更新元素之前要先獲取到更新位置的下標,但是此時根本就沒有一個元素,因此也就不可能獲取到下標。

三、代碼

class EmptyException extends RuntimeException {
    public EmptyException() {
        //這是一個提示順序表為空的異常
    }
    public EmptyException(String massage) {
        super(massage);
    }
}
// 更新 pos 位置的元素
public void set(int pos, int value) {
    if (isEmpty()) {
        //順序表有可能是空的 - 拋異常來提示
        //這里要注意的是此方法是用來更新的,即使是空間滿了也不需要擴容
        throw new EmptyException("當前順序表為空?。?!");
    }
    //2.pos位置要合法 - 下標不為負數(shù),不超過數(shù)組長度
    if (pos < 0 || pos >= this.usedSize) {
        //查找位置的下標可能是負數(shù) - 也可能超過了順序表的長度 - 拋異常來提示
        throw new PosWrongfulException("set獲取元素的時候,pos位置不合法?。?!");
    }
    // 開始更新
    this.elem[pos] = value;  //賦值即可
}
public class MyArrayList {
    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList();
        // 測試在順序表末尾插入一個元素的方法
        arrayList.add(1);
        arrayList.add(2);
        arrayList.add(3);
        // 測試在順序表中指定位置插入一個元素
        try{
            arrayList.add(1, 10);//將1下標的位置插入一個10
        }catch (PosWrongfulException e){ //包裹一下可能會拋出的異常
            e.printStackTrace();//如果有異常會提示
        }
        // 輸出更新之前的順序表元素
        arrayList.disPlay();
        System.out.println(); // 換行
        // 測試 set 方法 - 將 1 下標位置的元素的值改為 100
        arrayList.set(1, 100);
        // 打印更新之后的順序表中的元素
        arrayList.disPlay();
    }
}

可以看到此時 1 下標位置就成功改為了 100。

四、錯誤

如果 pos 位置不合法 的情況會是什么樣的

// 測試 get 方法 - 將 1 下標位置的元素的值改為 100
arrayList.set(4, 100);

如上述代碼所示,在 4 下標插入一個 100,因為順序表最大的下標是 3 因此此時超過了順序表的長度,即為不合法的情況。

可以看到此處就拋出了一個 位置不合法的異常。

如果 順序表為空 的情況會是什么樣的?

將之前寫的在順序表中插入元素的代碼注釋后,此時順序表中就是空的了。

當前拋出了一個順序表為空的異常。

到此這篇關(guān)于Java實現(xiàn)更新順序表中的指定元素的示例的文章就介紹到這了,更多相關(guān)Java 更新順序表的指定元素內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-plus apply函數(shù)使用場景分析

    Mybatis-plus apply函數(shù)使用場景分析

    Mybatis-plus 里面的 apply方法 是用于拼接自定義的條件判斷,自定義時間查詢,根據(jù)傳進來的開始日期,查詢所有該日期是數(shù)據(jù),但是數(shù)據(jù)庫中保存是時間,所以需要使用apply查詢方式并格式化,這篇文章給大家介紹Mybatis-plus apply函數(shù)使用,感興趣的朋友一起看看吧
    2024-02-02
  • Java泛型 <T> T、 T、<T>的用法小結(jié)

    Java泛型 <T> T、 T、<T>的用法小結(jié)

    T在Java泛型中,被稱作類型變量, 有的方法返回值是<T> T,有的是T,區(qū)別在哪里,本文主要介紹了Java泛型 <T> T、 T、<T>的用法小結(jié),具有一定的參考價值,感興趣的可以了解下
    2023-12-12
  • idea中斷點類型之All和Thread的區(qū)別介紹

    idea中斷點類型之All和Thread的區(qū)別介紹

    使用all模式對于程序中含有多個線程來說,會將多個線程都阻塞在斷點,此時所有的線程都執(zhí)行到此處,在最后一個線程執(zhí)行到此處是會發(fā)生暫停,在這之前的線程會繼續(xù)執(zhí)行到任意位置,本文給大家詳細介紹下idea中斷點類型之All和Thread的區(qū)別,感興趣的朋友一起看看吧
    2022-03-03
  • Spring Cloud原理詳解

    Spring Cloud原理詳解

    今天小編就為大家分享一篇關(guān)于Spring Cloud原理詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • SpringBoot與Redis的令牌主動失效機制實現(xiàn)

    SpringBoot與Redis的令牌主動失效機制實現(xiàn)

    本文詳細介紹了基于SpringBoot和Redis實現(xiàn)令牌主動失效機制,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-12-12
  • 詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼

    詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼

    這篇文章主要介紹了詳解如何把Java中if-else代碼重構(gòu)成高質(zhì)量代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 使用Spring Validation實現(xiàn)數(shù)據(jù)校驗的代碼詳解

    使用Spring Validation實現(xiàn)數(shù)據(jù)校驗的代碼詳解

    在現(xiàn)代Web應(yīng)用開發(fā)中,數(shù)據(jù)校驗是不可忽視的重要環(huán)節(jié),Spring提供了強大的數(shù)據(jù)校驗框架——Spring Validation,可以有效提升數(shù)據(jù)輸入的安全性與應(yīng)用的穩(wěn)定性,本文將介紹如何使用Spring Validation進行數(shù)據(jù)校驗,幫助您深入理解和靈活應(yīng)用這一技術(shù)
    2024-11-11
  • springboot使用yml文件配置多環(huán)境方式(dev、test、prod)

    springboot使用yml文件配置多環(huán)境方式(dev、test、prod)

    這篇文章主要介紹了springboot使用yml文件配置多環(huán)境方式(dev、test、prod),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • java中的數(shù)組初始化賦初值方式

    java中的數(shù)組初始化賦初值方式

    這篇文章主要介紹了java中的數(shù)組初始化賦初值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 詳解Spring Boot 項目部署到heroku爬坑

    詳解Spring Boot 項目部署到heroku爬坑

    這篇文章主要介紹了詳解Spring Boot 項目部署到heroku爬坑,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08

最新評論

北川| 秦皇岛市| 讷河市| 平果县| 白朗县| 平和县| 珲春市| 常熟市| 武平县| 安西县| 吴川市| 鄂尔多斯市| 治多县| 综艺| 宝丰县| 修武县| 泰顺县| 伽师县| 墨脱县| 淄博市| 杭锦旗| 鹤岗市| 临澧县| 通榆县| 石楼县| 井陉县| 育儿| 哈巴河县| 阳朔县| 平安县| 辛集市| 策勒县| 云南省| 城口县| 安龙县| 营山县| 曲松县| 三河市| 富民县| 咸丰县| 通化市|