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

Java中ArrayList刪除的常用操作及方法

 更新時(shí)間:2023年11月24日 09:17:07   作者:世俗ˊ  
ArrayList是最常用的一種java集合,在開發(fā)中我們常常需要從ArrayList中刪除特定元素,本文主要介紹了Java中ArrayList刪除的常用操作及方法,感興趣的可以了解一下

remove(int index)方法

remove(int index)是ArrayList類中用于刪除指定位置元素的方法。它接收一個(gè)整型參數(shù)index,表示要?jiǎng)h除的元素在列表中的索引位置。該方法會(huì)刪除列表中索引為index的元素,并將其后面的元素往前移動(dòng)一位,填補(bǔ)被刪除的元素位置。返回值是被刪除的元素。

具體實(shí)現(xiàn)中,ArrayList內(nèi)部使用數(shù)組來存儲(chǔ)元素,因此刪除元素時(shí)需要將被刪除元素之后的所有元素都向前移動(dòng)一位,以保證數(shù)組不出現(xiàn)空洞。

下面是一個(gè)簡單的示例,演示了如何使用ArrayList的remove(int index)方法來刪除指定位置的元素: 

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)ArrayList并添加一些元素
        ArrayList<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");
        list.add("Grape");
        
        System.out.println("原始列表:" + list);
        
        // 刪除索引為1的元素(即第二個(gè)元素)
        String removedElement = list.remove(1);
        
        System.out.println("刪除的元素是:" + removedElement);
        System.out.println("操作后的列表:" + list);
    }
}

上述示例創(chuàng)建了一個(gè)ArrayList,并向其中添加了一些水果。然后使用remove(int index)方法刪除了索引為1的元素(即第二個(gè)元素),并打印出被刪除的元素以及操作后的列表。

運(yùn)行該示例,將會(huì)輸出以下結(jié)果:

原始列表:[Apple, Banana, Orange, Grape]
刪除的元素是:Banana
操作后的列表:[Apple, Orange, Grape]

remove(Object o)方法

remove(Object o)是ArrayList類中的方法,用于從列表中刪除第一個(gè)匹配到的指定元素。它接收一個(gè)參數(shù)o,表示要?jiǎng)h除的元素對(duì)象。該方法會(huì)遍歷列表,找到與參數(shù)o相等的第一個(gè)元素,并將其從列表中刪除。

具體實(shí)現(xiàn)中,ArrayList內(nèi)部使用數(shù)組來存儲(chǔ)元素。當(dāng)調(diào)用remove(Object o)方法時(shí),它會(huì)依次比較列表中的每個(gè)元素與參數(shù)o的相等性。如果找到匹配項(xiàng),則刪除該元素,并將后面的元素向前移動(dòng)一位來填補(bǔ)被刪除的位置。返回值是一個(gè)布爾值,表示是否成功刪除了元素。

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)ArrayList并添加一些元素
        ArrayList<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");
        list.add("Grape");
        list.add("Banana");
        
        System.out.println("原始列表:" + list);
        
        // 刪除指定的元素
        boolean isRemoved = list.remove("Banana");
        
        if (isRemoved) {
            System.out.println("刪除成功!");
        } else {
            System.out.println("刪除失??!");
        }
        
        System.out.println("操作后的列表:" + list);
    }
}

上述示例創(chuàng)建了一個(gè)ArrayList,并向其中添加了一些水果。然后使用remove(Object o)方法刪除了指定的元素(這里是"Banana"),并根據(jù)返回值判斷是否刪除成功。

運(yùn)行該示例,將會(huì)輸出以下結(jié)果:

原始列表:[Apple, Banana, Orange, Grape, Banana]
刪除成功!
操作后的列表:[Apple, Orange, Grape, Banana]

removeAll?(Collection<?> c)方法

removeAll(Collection<?> c)是ArrayList類中的方法,用于從列表中刪除所有與指定集合中包含的元素相等的元素。它接收一個(gè)參數(shù)c,表示要?jiǎng)h除的元素集合。該方法會(huì)遍歷列表,并刪除與集合c中包含的元素相等的所有元素。

具體實(shí)現(xiàn)中,ArrayList內(nèi)部使用數(shù)組來存儲(chǔ)元素。當(dāng)調(diào)用removeAll(Collection<?> c)方法時(shí),它會(huì)遍歷列表中的每個(gè)元素,并將其與集合c中的每個(gè)元素進(jìn)行比較。如果找到匹配項(xiàng),則刪除列表中的該元素,并將后面的元素向前移動(dòng)一位來填補(bǔ)被刪除的位置。返回值是一個(gè)布爾值,表示是否成功刪除了元素。

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

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)ArrayList并添加一些元素
        List<String> list1 = new ArrayList<>(Arrays.asList("Apple", "Banana", "Orange", "Grape", "Banana"));
        
        // 創(chuàng)建一個(gè)要?jiǎng)h除的集合
        List<String> list2 = new ArrayList<>(Arrays.asList("Banana", "Orange"));
        
        System.out.println("原始列表:" + list1);
        
        // 刪除與list2中包含的元素相等的所有元素
        boolean isModified = list1.removeAll(list2);
        
        if (isModified) {
            System.out.println("刪除成功!");
        } else {
            System.out.println("刪除失??!");
        }
        
        System.out.println("操作后的列表:" + list1);
    }
}

在上述示例中,我們首先創(chuàng)建了一個(gè)ArrayList list1,并向其中添加了一些水果。然后,我們創(chuàng)建了另一個(gè)ArrayList list2,其中包含要從 list1 中刪除的元素。接下來,我們調(diào)用 list1.removeAll(list2) 方法,它會(huì)刪除 list1 中所有與 list2 中包含的元素相等的元素。

運(yùn)行該示例,將會(huì)輸出以下結(jié)果:

原始列表:[Apple, Banana, Orange, Grape, Banana]
刪除成功!
操作后的列表:[Apple, Grape]

removeIf?(Predicate<? super E> filter)方法

removeIf(Predicate<? super E> filter)是List接口中的一個(gè)默認(rèn)方法,用于根據(jù)給定的條件(Predicate)刪除列表中滿足條件的元素。它接收一個(gè)參數(shù)filter,表示要應(yīng)用的條件。

具體實(shí)現(xiàn)中,removeIf(Predicate<? super E> filter)方法會(huì)遍歷列表中的每個(gè)元素,并使用給定的條件(Predicate)對(duì)元素進(jìn)行判斷。如果判斷結(jié)果為true,則刪除該元素。返回值是一個(gè)布爾值,表示是否成功刪除了元素。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Predicate;

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)ArrayList并添加一些元素
        List<String> list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Orange", "Grape"));
        
        System.out.println("原始列表:" + list);
        
        // 刪除長度小于6的元素
        Predicate<String> condition = str -> str.length() < 6;
        list.removeIf(condition);
        
        System.out.println("操作后的列表:" + list);
    }
}

在上述示例中,我們首先創(chuàng)建了一個(gè)ArrayList list,并向其中添加了一些水果。然后,我們定義了一個(gè)謂詞(Predicate)condition,它用于篩選要?jiǎng)h除的元素。具體來說,該謂詞會(huì)判斷字符串的長度是否小于6。

接下來,我們調(diào)用 list.removeIf(condition) 方法,它會(huì)刪除滿足條件的所有元素。

運(yùn)行該示例,將會(huì)輸出以下結(jié)果:

原始列表:[Apple, Banana, Orange, Grape]
操作后的列表:[Banana, Orange]

removeRange?(int fromIndex, int toIndex)方法

removeRange(int fromIndex, int toIndex)方法是ArrayList類的一個(gè)受保護(hù)方法,用于刪除列表中指定范圍內(nèi)的元素。該方法接受兩個(gè)參數(shù):fromIndex表示要?jiǎng)h除范圍的起始索引(包括),toIndex表示要?jiǎng)h除范圍的結(jié)束索引(不包括)。

需要注意的是,removeRange(int fromIndex, int toIndex)方法是ArrayList類中的受保護(hù)方法,意味著它只能在ArrayList的子類中訪問和使用。這是為了避免直接暴露刪除范圍的操作,因?yàn)樵趧h除范圍后,列表的內(nèi)部結(jié)構(gòu)可能會(huì)發(fā)生不連續(xù)或混亂的變化。

import java.util.ArrayList;
import java.util.Arrays;

public class Main<E> extends ArrayList<E> {
    public void removeElementsInRange(int fromIndex, int toIndex) {
        if (fromIndex < 0 || toIndex > size() || fromIndex > toIndex) {
            throw new IndexOutOfBoundsException();
        }
        
        removeRange(fromIndex, toIndex);
    }
    
    public static void main(String[] args) {
        // 創(chuàng)建一個(gè)CustomArrayList并添加一些元素
        Main<String> list = new Main<>();
        list.addAll(Arrays.asList("Apple", "Banana", "Orange", "Grape"));

        System.out.println("原始列表:" + list);

        // 刪除索引為1到3之間的元素(不包括3)
        list.removeElementsInRange(1, 3);

        System.out.println("操作后的列表:" + list);
    }
}

在這個(gè)示例中,我們創(chuàng)建了一個(gè)自定義的ArrayList子類Main,它繼承了ArrayList,并添加了一個(gè)新的方法removeElementsInRange(int fromIndex, int toIndex)。在該方法內(nèi)部,我們首先進(jìn)行參數(shù)的合法性檢查,確保起始索引和結(jié)束索引在有效范圍內(nèi)。然后,我們調(diào)用removeRange(fromIndex, toIndex)方法來實(shí)際刪除指定范圍內(nèi)的元素。

運(yùn)行該示例,將會(huì)輸出以下結(jié)果:

原始列表:[Apple, Banana, Orange, Grape]
操作后的列表:[Apple, Grape]

需要注意的是,盡管我們可以在子類中使用removeRange(int fromIndex, int toIndex)方法,但在一般情況下,推薦使用更高級(jí)別的方法,如removeAll(Collection<?> c)或removeIf(Predicate<? super E> filter)來刪除元素。這些方法更易于使用,并提供了更靈活的條件判斷,以滿足不同的需求。

到此這篇關(guān)于Java中ArrayList刪除的常用操作及方法的文章就介紹到這了,更多相關(guān)Java ArrayList刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java編寫一個(gè)花名隨機(jī)抽取器的實(shí)現(xiàn)示例

    java編寫一個(gè)花名隨機(jī)抽取器的實(shí)現(xiàn)示例

    這篇文章主要介紹了java編寫一個(gè)花名隨機(jī)抽取器的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • java的IO流詳細(xì)解讀

    java的IO流詳細(xì)解讀

    這篇文章主要介紹了java的IO流詳細(xì)解讀,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Mybatis-Plus如何配置分頁對(duì)象

    Mybatis-Plus如何配置分頁對(duì)象

    本文主要介紹了Mybatis-Plus如何配置分頁對(duì)象,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 詳解Java正則表達(dá)式中Pattern類和Matcher類

    詳解Java正則表達(dá)式中Pattern類和Matcher類

    java.util.regex是一個(gè)用正則表達(dá)式所訂制的模式來對(duì)字符串進(jìn)行匹配工作的類庫包。包括兩個(gè)類Pattern和Matcher Pattern,Pattern是一個(gè)正則表達(dá)式經(jīng)編譯后的表現(xiàn)模式。Matcher對(duì)象是一個(gè)狀態(tài)機(jī)器,它依據(jù)Pattern對(duì)象做為匹配模式對(duì)字符串展開匹配檢查。
    2016-12-12
  • 淺析Java IO相關(guān)知識(shí)點(diǎn)

    淺析Java IO相關(guān)知識(shí)點(diǎn)

    本篇文章給大家分享了關(guān)于java io的一些相關(guān)知識(shí)點(diǎn)以及相關(guān)內(nèi)容,對(duì)此有需要的朋友可以學(xué)習(xí)參考下。
    2018-05-05
  • Java雜談之類和對(duì)象 封裝 構(gòu)造方法以及代碼塊詳解

    Java雜談之類和對(duì)象 封裝 構(gòu)造方法以及代碼塊詳解

    在現(xiàn)實(shí)世界中,真實(shí)存在的東西,比如吉普車,卡丁車,貨車。我們在認(rèn)識(shí)它的時(shí)候就會(huì)在腦海中將它抽象為一種類別叫做車。 好了,那再計(jì)算機(jī)世界中,它同樣的也會(huì)這樣做
    2021-09-09
  • java文件操作報(bào)錯(cuò):java.io.FileNotFoundException(拒絕訪問)問題

    java文件操作報(bào)錯(cuò):java.io.FileNotFoundException(拒絕訪問)問題

    在進(jìn)行編程時(shí),經(jīng)常會(huì)遇到因疏忽小細(xì)節(jié)而導(dǎo)致的錯(cuò)誤,如忘記在路徑后添加文件名,本文通過一個(gè)具體的修改前后對(duì)比示例,解釋了錯(cuò)誤原因,并給出了解決方案,這類經(jīng)驗(yàn)分享對(duì)編程學(xué)習(xí)者具有參考價(jià)值
    2024-10-10
  • SpringBoot 整合 JMSTemplate的示例代碼

    SpringBoot 整合 JMSTemplate的示例代碼

    這篇文章主要介紹了SpringBoot 整合 JMSTemplate的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • springboot中如何去整合shrio實(shí)例分享

    springboot中如何去整合shrio實(shí)例分享

    這篇文章主要介紹了springboot中如何去整合shrio實(shí)例分享的相關(guān)資料,需要的朋友可以參考下
    2023-08-08
  • Java 中一個(gè)類提供一個(gè)默認(rèn)對(duì)象的多種方法

    Java 中一個(gè)類提供一個(gè)默認(rèn)對(duì)象的多種方法

    這篇文章主要介紹了Java 中一個(gè)類提供一個(gè)默認(rèn)對(duì)象的多種方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07

最新評(píng)論