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

Java中for循環(huán)遍歷刪除操作方法

 更新時間:2023年11月02日 14:47:35   作者:小星星*  
在Java中,有些場景需要遍歷集合中的元素,然后根據(jù)條件進(jìn)行刪除元素的操作,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

在Java中,有些場景需要遍歷集合中的元素,然后根據(jù)條件進(jìn)行刪除元素的操作。如果使用傳統(tǒng)的for循環(huán)遍歷方式來刪除元素,很可能出錯或發(fā)生意想不到的問題。推薦使用迭代器iterator完成

1. 推薦使用迭代器方式****刪除

阿里規(guī)約:【強制】不要在 foreach 循環(huán)里進(jìn)行元素的 remove/add 操作。remove 元素請使用 Iterator方式,如果并發(fā)操作,需要對 Iterator 對象加鎖。

    @Test
    void testList2(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String item = iterator.next();
            if ("2".equals(item)) {
                iterator.remove();
            }
        }
        System.out.println(list);
    }

2. 盡量不要使用for循環(huán)遍歷刪除,否則很可能出問題。

因為刪除元素后,數(shù)組元素發(fā)生前移,后續(xù)遍歷可能導(dǎo)致

數(shù)組訪問越界錯誤:元素減少,但是size()沒有變,(可改成for里使用list.size())
有元素沒遍歷到
@Test
    void testList(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        for (String item : list) {
            if ("2".equals(item)) {
                list.remove(item);
            }
        }
        System.out.println(list);
    }
    //或
    @Test
    void testList2(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        int size = list.size();
        for (int i=0; i<size; i++) {
            if ("2".equals(list.gei(i))) {
                list.remove(i); 
            }
        }
        System.out.println(list);
    }

3. 如果非要使用這種的話,可以使用倒序遍歷刪除,這樣即使發(fā)生元素移動,不影響前面的元素

    @Test
    void testList3(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        for (int i=list.size()-1; i>=0; i--) {
            if ("2".equals(list.gei(i))) {
                list.remove(i); 
            }
        }
        System.out.println(list);
    }

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

相關(guān)文章

  • java web實現(xiàn)簡易收費站

    java web實現(xiàn)簡易收費站

    這篇文章主要為大家詳細(xì)介紹了java web實現(xiàn)簡易收費站,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一
    2020-11-11
  • Spring整合JUnit詳解

    Spring整合JUnit詳解

    Spring?是目前主流的?Java?Web?開發(fā)框架,是?Java?世界最為成功的框架。該框架是一個輕量級的開源框架,這篇文章主要介紹如何配置數(shù)據(jù)源、注解開發(fā)以及整合Junit,感興趣的同學(xué)可以參考一下
    2023-04-04
  • Java實戰(zhàn)之用springboot+netty實現(xiàn)簡單的一對一聊天

    Java實戰(zhàn)之用springboot+netty實現(xiàn)簡單的一對一聊天

    這篇文章主要介紹了Java實戰(zhàn)之用springboot+netty實現(xiàn)簡單的一對一聊天,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java使用FTPClient類讀寫FTP

    Java使用FTPClient類讀寫FTP

    這篇文章主要為大家詳細(xì)介紹了Java使用FTPClient類讀寫FTP的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Java中的CountDownLatch多方面深入解析

    Java中的CountDownLatch多方面深入解析

    CountDownLatch是Java中的一個并發(fā)工具類,它可以用于控制多個線程的并發(fā)執(zhí)行流程,這篇文章主要介紹了Java中的CountDownLatch的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-08-08
  • Java參數(shù)校驗Validator與@AssertTrue深度解析

    Java參數(shù)校驗Validator與@AssertTrue深度解析

    本文詳細(xì)介紹了Java的Validator框架及其@AssertTrue注解的使用,包括環(huán)境準(zhǔn)備、基礎(chǔ)注解介紹、實戰(zhàn)示例、@AssertTrue的深入解析、高級特性和最佳實踐建議,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式

    MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式

    這篇文章主要介紹了MyBatis的@SelectProvider注解構(gòu)建動態(tài)SQL方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java基于IO流實現(xiàn)登錄和注冊功能

    Java基于IO流實現(xiàn)登錄和注冊功能

    這篇文章主要為大家詳細(xì)介紹了Java基于IO流實現(xiàn)登錄和注冊功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Java Spring數(shù)據(jù)單元配置過程解析

    Java Spring數(shù)據(jù)單元配置過程解析

    這篇文章主要介紹了Java Spring數(shù)據(jù)單元配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • maven使用systemPath方式加載本地jar的實現(xiàn)

    maven使用systemPath方式加載本地jar的實現(xiàn)

    本文介紹Maven通過systemPath加載本地第三方JAR的方法,需配置依賴和插件以確保打包和運行,具有一定的參考價值,感興趣的可以了解一下
    2025-06-06

最新評論

鄱阳县| 巴楚县| 同仁县| 岳池县| 资阳市| 天峨县| 嵊州市| 莲花县| 福泉市| 比如县| 开鲁县| 东乡族自治县| 遵义市| 建湖县| 临武县| 锡林郭勒盟| 商城县| 环江| 南和县| 治多县| 涿鹿县| 桓台县| 昆明市| 临澧县| 凤山县| 福海县| 太仆寺旗| 汝阳县| 扶余县| 天镇县| 张家港市| 婺源县| 古浪县| 辽源市| 洛南县| 英超| 康乐县| 通化市| 若尔盖县| 鄂伦春自治旗| 灵台县|