gpt4 book ai didi

java - 检查 ArrayList 是否包含超过 1 个相同的整数并将它们从列表中删除?

转载 作者:行者123 更新时间:2023-12-02 13:01:56 25 4
gpt4 key购买 nike

我遇到了一个看似简单的问题,但我一直无法弄清楚。基本上,我的列表包含许多代表不同项目的整数,这工作得很好,但我需要能够检查列表是否多次包含相同的整数,然后将它们从列表中删除。

if (myList.contains(100)) { // I want to check if the int '100' exists in myList twice
myList.remove(new Integer(100)); // I want to remove the 2 aforementioned duplicate integers
}

如果我的解释不是最清楚,我深表歉意。提前致谢!

编辑:为了澄清,我希望列表包含重复项,但我希望能够检查重复项是否存在 X 次,然后从列表中删除这些实例。

我可能想添加 int 100 7 次,然后检查它是否存在两次,然后仅从列表中删除它的 2 实例。

最佳答案

您可以创建一个方法来完成手头的任务,大致如下:

private static boolean removeSpecfiedNumber(int number,int numberOfTimes, List<Integer> integerList){
if(integerList.stream().filter(x -> x == number).count() >= numberOfTimes){
for (int i = 0; i < numberOfTimes; i++) {
integerList.remove((Integer)number);
}
return true;
}
return false;
}
  • 参数 number 是您要检查其出现情况的数字,即您的情况下的 100
  • 参数numberOfTimes是您想要从列表中删除该元素的次数。
  • 参数integerList当然是您要从中删除元素的列表。

我们以下面的代码为例:

List<Integer> myList = new ArrayList<>();
myList.add(100);
myList.add(200);
myList.add(100);
myList.add(100);
myList.add(100);
myList.add(100);
myList.add(100);
myList.add(100);
removeSpecfiedNumber(100,2,myList);
System.out.println(myList);

这将从 myList 中删除 100 两次,因此应该产生以下元素:

[200, 100, 100, 100, 100, 100]

如果您愿意,方法返回类型可以是void,但是,boolean的返回类型有时会派上用场,因此我使用了这种方法。

此外,如果您正在处理对象,则无需使用 static 修饰符,因此可以将其删除。

关于java - 检查 ArrayList 是否包含超过 1 个相同的整数并将它们从列表中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44266039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com