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

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

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

remove(int index)方法

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

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

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

import java.util.ArrayList;

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

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

運行該示例,將會輸出以下結(jié)果:

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

remove(Object o)方法

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

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

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個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)建了一個ArrayList,并向其中添加了一些水果。然后使用remove(Object o)方法刪除了指定的元素(這里是"Banana"),并根據(jù)返回值判斷是否刪除成功。

運行該示例,將會輸出以下結(jié)果:

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

removeAll?(Collection<?> c)方法

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

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

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

public class Main {
    public static void main(String[] args) {
        // 創(chuàng)建一個ArrayList并添加一些元素
        List<String> list1 = new ArrayList<>(Arrays.asList("Apple", "Banana", "Orange", "Grape", "Banana"));
        
        // 創(chuàng)建一個要刪除的集合
        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)建了一個ArrayList list1,并向其中添加了一些水果。然后,我們創(chuàng)建了另一個ArrayList list2,其中包含要從 list1 中刪除的元素。接下來,我們調(diào)用 list1.removeAll(list2) 方法,它會刪除 list1 中所有與 list2 中包含的元素相等的元素。

運行該示例,將會輸出以下結(jié)果:

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

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

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

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

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)建一個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)建了一個ArrayList list,并向其中添加了一些水果。然后,我們定義了一個謂詞(Predicate)condition,它用于篩選要刪除的元素。具體來說,該謂詞會判斷字符串的長度是否小于6。

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

運行該示例,將會輸出以下結(jié)果:

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

removeRange?(int fromIndex, int toIndex)方法

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

需要注意的是,removeRange(int fromIndex, int toIndex)方法是ArrayList類中的受保護方法,意味著它只能在ArrayList的子類中訪問和使用。這是為了避免直接暴露刪除范圍的操作,因為在刪除范圍后,列表的內(nèi)部結(jié)構(gòu)可能會發(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)建一個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);
    }
}

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

運行該示例,將會輸出以下結(jié)果:

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

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

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

相關(guān)文章

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

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

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

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

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

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

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

    LangChain4j 集成 SpringBoot的項目實踐

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

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

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

    Java如何獲取當天零點和明天零點的時間和時間戳

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

    解決IDEA修改 .vmoptions 文件后導致無法啟動的問題

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

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

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

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

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

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

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

最新評論

凤冈县| 德保县| 连江县| 台东市| 防城港市| 卢氏县| 宁阳县| 浦东新区| 区。| 巴彦县| 河北区| 论坛| 陵川县| 莫力| 丰城市| 潜山县| 措勤县| 城口县| 宝清县| 静宁县| 德令哈市| 江陵县| 乐陵市| 洞头县| 长顺县| 涡阳县| 兴隆县| 木兰县| 八宿县| 开鲁县| 济阳县| 阿鲁科尔沁旗| 敦煌市| 敦煌市| 临潭县| 西丰县| 曲沃县| 洛宁县| 石楼县| 资溪县| 仲巴县|