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

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實(shí)現(xiàn)byte[]轉(zhuǎn)List的示例代碼

    Java實(shí)現(xiàn)byte[]轉(zhuǎn)List的示例代碼

    byte,即字節(jié),由8位的二進(jìn)制組成。在Java中,byte類型的數(shù)據(jù)是8位帶符號(hào)的二進(jìn)制數(shù)。List?是一個(gè)接口,它繼承于Collection的接口。它代表著有序的隊(duì)列。本文將介紹如何通過java實(shí)現(xiàn)byte[]轉(zhuǎn)List,需要的可以參考一下
    2022-01-01
  • 詳解Spring MVC事務(wù)配置

    詳解Spring MVC事務(wù)配置

    這篇文章主要介紹了詳解Spring MVC事務(wù)配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)機(jī)器人行走

    java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)機(jī)器人行走

    這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)機(jī)器人行走,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • LangChain4j 集成 SpringBoot的項(xiàng)目實(shí)踐

    LangChain4j 集成 SpringBoot的項(xiàng)目實(shí)踐

    本文主要介紹了LangChain4j 集成 SpringBoot的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-12-12
  • SpringBoot+MyBatis實(shí)現(xiàn)登錄案例

    SpringBoot+MyBatis實(shí)現(xiàn)登錄案例

    前端時(shí)間在網(wǎng)上看到有朋友在學(xué)習(xí)springboot項(xiàng)目的搭建過程,今天就抽空給大家分享一個(gè)案例幫助大家學(xué)習(xí)SpringBoot+MyBatis實(shí)現(xiàn)登錄功能,具體實(shí)現(xiàn)代碼跟隨小編一起看看吧
    2021-06-06
  • Java如何獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳

    Java如何獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳

    這篇文章主要介紹了如何在Java中獲取當(dāng)天零點(diǎn)和明天零點(diǎn)的時(shí)間和時(shí)間戳,并提供了示例代碼,新手小白完全可以通過文中介紹的代碼實(shí)現(xiàn),需要的朋友可以參考下
    2025-03-03
  • 解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動(dòng)的問題

    解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動(dòng)的問題

    這篇文章主要介紹了解決IDEA修改 .vmoptions 文件后導(dǎo)致無法啟動(dòng)的問題,需要的朋友可以參考下
    2020-12-12
  • Java多態(tài)概念、實(shí)現(xiàn)機(jī)制與實(shí)踐應(yīng)用詳解

    Java多態(tài)概念、實(shí)現(xiàn)機(jī)制與實(shí)踐應(yīng)用詳解

    多態(tài)是指同一個(gè)方法在不同對(duì)象上具有不同的行為,通過多態(tài)程序可以在運(yùn)行時(shí)決定調(diào)用哪個(gè)方法,從而提高代碼的靈活性和可擴(kuò)展性,這篇文章主要介紹了Java多態(tài)概念、實(shí)現(xiàn)機(jī)制與實(shí)踐應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2026-01-01
  • Java中線程用法總結(jié)

    Java中線程用法總結(jié)

    這篇文章主要介紹了Java中線程用法,實(shí)例總結(jié)了java中線程的常見使用技巧,需要的朋友可以參考下
    2015-06-06
  • Java常用JVM參數(shù)實(shí)戰(zhàn)

    Java常用JVM參數(shù)實(shí)戰(zhàn)

    本文主要介紹了Java常用JVM參數(shù)實(shí)戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05

最新評(píng)論

剑河县| 资兴市| 沅陵县| 墨竹工卡县| 卢龙县| 西林县| 沿河| 寿光市| 青海省| 克什克腾旗| 昌吉市| 彭水| 平湖市| 巴南区| 滦南县| 永川市| 平顶山市| 通道| 顺昌县| 蕉岭县| 盐源县| 贵定县| 胶州市| 红安县| 遂溪县| 金昌市| 绿春县| 沙湾县| 寿光市| 永年县| 乐平市| 克东县| 玛沁县| 大姚县| 桦南县| 福贡县| 江阴市| 江门市| 宁夏| 清苑县| 汉阴县|