欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、思路

1.定義一個(gè) pos 變量為要更新的位置,定義一個(gè) value 變量為更新后的數(shù)值.
2.順序表不能是空的,就肯定不可以更新元素.
3.pos位置要合法,要保證 pos 位置是處在順序表范圍內(nèi)的.
4.更新功能不需要考慮擴(kuò)容,因?yàn)椴簧婕暗皆氐脑鰷p.
5.更新的之前先獲取到 pos 位置的下標(biāo),更新的時(shí)候直接將 value 賦值給 pos 位置即可.

二、圖解

當(dāng)前 pos 指向的是 2 下標(biāo),即 2 下標(biāo)就是接下來(lái)要更新元素的位置,value 等于 100,即為接下來(lái) pos 位置會(huì)更新為 100 。

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

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

1、pos 位置不合法的情況

如上述圖片展示出來(lái)的情況,pos 位置不能超過(guò)順序表長(zhǎng)度不能是負(fù)數(shù)下標(biāo)。

2、順序表是空的情況

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

之前說(shuō)過(guò)了,在更新元素之前要先獲取到更新位置的下標(biāo),但是此時(shí)根本就沒(méi)有一個(gè)元素,因此也就不可能獲取到下標(biāo)。

三、代碼

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

可以看到此時(shí) 1 下標(biāo)位置就成功改為了 100。

四、錯(cuò)誤

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

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

如上述代碼所示,在 4 下標(biāo)插入一個(gè) 100,因?yàn)轫樞虮碜畲蟮南聵?biāo)是 3 因此此時(shí)超過(guò)了順序表的長(zhǎng)度,即為不合法的情況。

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

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

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

當(dāng)前拋出了一個(gè)順序表為空的異常。

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

相關(guān)文章

  • 基于Spring監(jiān)聽(tīng)Binlog日志的方法詳解

    基于Spring監(jiān)聽(tīng)Binlog日志的方法詳解

    MySQL 的二進(jìn)制日志(binlog)有三種不同的格式,通常被稱為 binlog 模式,這三種模式分別是 Statement 模式、Row 模式和Mixed 模式,本文將給大家介紹如何基于Spring監(jiān)聽(tīng)Binlog日志,需要的朋友可以參考下
    2024-09-09
  • springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    springBoot接入阿里云oss的實(shí)現(xiàn)步驟

    這篇文章主要介紹了springBoot接入阿里云oss的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Spring之異步任務(wù)@Async解讀

    Spring之異步任務(wù)@Async解讀

    這篇文章主要介紹了Spring之異步任務(wù)@Async,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 實(shí)例分析Java單線程與多線程

    實(shí)例分析Java單線程與多線程

    本篇文章通過(guò)代碼實(shí)例給大家詳細(xì)講述了Java單線程與多線程的相關(guān)原理和知識(shí)點(diǎn)總結(jié),需要的朋友可以學(xué)習(xí)下。
    2018-02-02
  • Apache DolphinScheduler完全設(shè)置東八區(qū)時(shí)區(qū)

    Apache DolphinScheduler完全設(shè)置東八區(qū)時(shí)區(qū)

    這篇文章主要為大家介紹了Apache DolphinScheduler完全設(shè)置東八區(qū)配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解

    基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解

    這篇文章主要介紹了基于javamelody監(jiān)控springboot項(xiàng)目過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • kotlin基礎(chǔ)教程之類和繼承

    kotlin基礎(chǔ)教程之類和繼承

    這篇文章主要介紹了kotlin基礎(chǔ)教程之類和繼承的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 解決Spring Data Jpa 實(shí)體類自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題

    解決Spring Data Jpa 實(shí)體類自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題

    這篇文章主要介紹了解決Spring Data Jpa 實(shí)體類自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)表失敗問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java大數(shù)據(jù)處理的核心技術(shù)MapReduce框架

    Java大數(shù)據(jù)處理的核心技術(shù)MapReduce框架

    MapReduce是一種分布式計(jì)算框架,適用于大規(guī)模的數(shù)據(jù)處理。它將大數(shù)據(jù)分成多個(gè)小數(shù)據(jù)塊,通過(guò)Map和Reduce兩個(gè)階段對(duì)數(shù)據(jù)進(jìn)行處理和分析。MapReduce框架具有可靠、高效、可擴(kuò)展等特點(diǎn),已經(jīng)成為大數(shù)據(jù)處理的核心技術(shù)
    2023-05-05
  • Java刪除ArrayList中的重復(fù)元素的兩種方法

    Java刪除ArrayList中的重復(fù)元素的兩種方法

    在Java編程中,ArrayList是一種常用的集合類,它允許我們存儲(chǔ)一組元素,在某些情況下,我們可能需要移除其中重復(fù)的元素,只保留唯一的元素,下面介紹兩種常見(jiàn)的刪除ArrayList中重復(fù)元素的方法,需要的朋友可以參考下
    2024-12-12

最新評(píng)論