删除三个
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/