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

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

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

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

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

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

    @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)遍歷刪除,否則很可能出問(wèn)題。

因?yàn)閯h除元素后,數(shù)組元素發(fā)生前移,后續(xù)遍歷可能導(dǎo)致

數(shù)組訪問(wèn)越界錯(cuò)誤:元素減少,但是size()沒(méi)有變,(可改成for里使用list.size())
有元素沒(méi)遍歷到
@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ā)生元素移動(dòng),不影響前面的元素

    @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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論