刪除List中指定元素

刪除ArrayList中的指定元素方案

我們準備一組測試數(shù)據(jù)。
/*構(gòu)建測試數(shù)據(jù)*/
public static ArrayList<String> buildItems() {
    ArrayList<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("a");
    list.add("a");
    return list;
}
1、第一種方案(使用for循環(huán))
list = buildItems();
for (int i = 0; i < list.size(); i++) {
    if (list.get(i).equals("a")) {
        list.remove(i);
        // 移除后內(nèi)部發(fā)生了位移,需要將指針-1。 
        --i;
    }
}
2、使用迭代器中提供的remove()函數(shù)。
list = buildItems();
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    if (iterator.next().equals("a")) {
        // 移除當前指針的值
        iterator.remove();
    }
}
3、使用while循環(huán)。
list = buildItems();
int index;
while ((index = list.indexOf("a")) != -1) {
    list.remove(index);
}

總結(jié):方案1、2效率是最高的,方案3,indexOf()函數(shù),內(nèi)部會多次循環(huán)。
還有其他方案嗎 ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容