gpt4 book ai didi

java - 删除ArrayList中的特定数字

转载 作者:行者123 更新时间:2023-12-01 10:27:55 25 4
gpt4 key购买 nike

我的代码遇到问题。我有一个数组列表,并且有一堆需要删除的零。它们与其他数字混合在一起,我想保留它们。但是,当我执行 for 循环时,它会跳过一些零并且不会删除它们。这是我的代码:

public static void main(String[] args) throws FileNotFoundException
{
Scanner scan = new Scanner(new File("input.txt"));
ArrayList<Double> list = new ArrayList<Double>();
while(scan.hasNextLine()){
list.add(scan.nextDouble());
}

for(int i=1; i<list.size();i+=4){
if(list.get(i)<150000){
list.set(i-1,(double) 0);
list.set(i,(double) 0);
list.set(i+1,(double) 0);
list.set(i+2,(double) 0);
}
}

for(int i=2; i<list.size();i+=4){
if(list.get(i)>22.2){
list.set(i-2,(double) 0);
list.set(i-1,(double) 0);
list.set(i,(double) 0);
list.set(i+1,(double) 0);
}
}

for(int i=3; i<list.size();i+=4){
if(list.get(i)<1100){
list.set(i-3,(double) 0);
list.set(i-2,(double) 0);
list.set(i-1,(double) 0);
list.set(i,(double) 0);
}
}

for(int i=0;i<list.size();i++){
if(list.get(i)==0){
list.remove(i);
}
}

System.out.println(list);
}
}

任何帮助将不胜感激!

最佳答案

当您删除 0 时,您正在结构性地修改列表。使用迭代器

while (iterator.hasNext()) {
int elem = iterator.next();
if (elem == 0)
iterator.remove();
}

希望有帮助。PD:您可以使用“{}”按钮直接在问题文本中包含代码

关于java - 删除ArrayList中的特定数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35263958/

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