You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Java中仅移除ArrayList中的指定元素(如Nokia)?

正确移除ArrayList中指定元素的实现方法

你当前代码里的mobiles.clear()会清空整个ArrayList,这显然不符合只移除"Nokia"的需求,下面提供几种可行的解决方案:

方法一:移除第一个匹配的"Nokia"元素

直接使用ArrayList的remove(Object o)方法,该方法会删除集合中第一个与传入对象相等的元素:

// 替换原代码中的mobiles.clear();
mobiles.remove("Nokia");
System.out.println(mobiles);

方法二:批量移除所有"Nokia"元素(避免并发修改异常)

如果集合中存在多个"Nokia"需要全部移除,推荐使用迭代器遍历删除,可避免遍历集合时直接删除元素引发的ConcurrentModificationException:

import java.util.Iterator;

// ... 其他代码保持不变
// 替换mobiles.clear();
Iterator<String> iterator = mobiles.iterator();
while (iterator.hasNext()) {
    String mobile = iterator.next();
    if ("Nokia".equals(mobile)) {
        iterator.remove();
    }
}
System.out.println(mobiles);

方法三:Java 8+ 简洁写法(批量移除)

Java 8及以上版本可以使用removeIf()结合Lambda表达式,一行代码完成批量移除:

// 替换mobiles.clear();
mobiles.removeIf(mobile -> "Nokia".equals(mobile));
System.out.println(mobiles);

完整修改后的代码示例

以方法一为例,完整代码如下:

package arraylisthashmaphashlist;

import java.util.ArrayList;

public class Arraylisthashmaphashlist {
    
    public static void main(String[] args) {
        ArrayList<String> mobiles = new ArrayList<String>();
        
        mobiles.add("Nokia");
        mobiles.add("Apple");
        mobiles.add("Samsung");
        mobiles.add("Oppo");
        System.out.println("移除前的集合:" + mobiles);
        
        // 仅移除"Nokia"元素
        mobiles.remove("Nokia");
        System.out.println("移除后的集合:" + mobiles);
    }
}

内容的提问来源于stack exchange,提问作者Don Randeep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:36:20