java - 从 ArrayList 中删除 - 从列表中删除一个整数

标签 java arraylist

删除三个
ArrayList 中有一个整数 3 和其他几个数字。删除该整数 3 的最佳方法是什么?

场景1 您知道整数 3 在列表中的位置。

场景2 您不知道整数 3 在列表中的位置。

问题陈述
修改给定的脚手架代码,以便处理场景 1。如果正确删除所需的整数,列表中所有元素的总和将与测试用例期望的相匹配。

import java.io.*;
import java.util.*;
public class JavaTutorial{ 
    public static void main(String[] args){ 
        List<Integer> numbers = new ArrayList<Integer>(); 
        numbers.add(1); 
        numbers.add(2); 
        numbers.add(3); 
        numbers.add(3); 
        numbers.add(4);
        numbers.add(3); 
        System.out.println("ArrayList contains : " + numbers); 
        numbers.remove(3);
        System.out.println("ArrayList contains : " + numbers); 
        int sum = 0;
        for (int i: numbers)
            sum += i;
        System.out.println (sum);
    }
}

这是我的问题和要编辑的示例代码。
谁能帮我解决这个问题吗?

最佳答案

对于场景 1,请使用 remove(int index)。由于第三项的索引为2(从零开始),您可以像这样删除它:

// Scenario 1:
numbers.remove(2);

对于场景 2,请使用 remove(Object o)。只需将其转换为 Integer,它就会搜索等于 3 的对象:

// Scenario 2:
numbers.remove((Integer)3);

测试一下:

List<Integer> numbers = new ArrayList<Integer>();
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(4);

// Scenario 1:
numbers.remove(2);

// Scenario 2:
numbers.remove((Integer)3);

System.out.println(numbers);

注意:在这两种情况下,不需要迭代列表。

更新:在场景 2 中,如果列表可能包含多个数字 3,那么要删除所有数字(Java 8),我会这样做:

numbers.removeIf(((Integer)3)::equals);

关于java - 从 ArrayList 中删除 - 从列表中删除一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35644240/

相关文章:

java - Jersey:获取方法的 URL

java - 如何正确读取 Flux<DataBuffer> 并将其转换为单个 inputStream

java <identifier> 期望在初始化变量时

java - 添加到 ArrayList 后出现 NotSerializedException

jsp - 使用 c :foreach (JSP/JSTL), 变量迭代 ArrayList 不起作用

java - 将绘制的圆圈对象添加到 Arraylist

java - 如何在不创建新进程的情况下通过代码运行 java 命令?

java - Tomcat 教程 : Why Did This Install Fail?

Java:从 ArrayList 中删除元素并添加文本

自定义对象的 Android ArrayList - 保存到 SharedPreferences - 可序列化?