gpt4 book ai didi

java - 如何从 arrayList 中删除一项

转载 作者:行者123 更新时间:2023-12-01 13:33:44 24 4
gpt4 key购买 nike

假设我有

List<Integer> mIds = new ArrayList<Integer>();
mIds.add(0,10);
mIds.add(1,10);
mIds.add(2,10);

我只想删除 listview 中的一项,但当我这样做时,它会删除 ArrayList 中的所有项目。你知道为什么吗?

int j=-1;
for (int i=0; i < mIds.size(); i++){
if (mIds.get(i) == modifier.getId()){
j=i;
break;
}
}
if (j != -1){
mIds.remove(j);
}

编辑:抱歉大家,我的问题是另一个问题;但我认为这与删除列表项有关。感谢大家的帮助

最佳答案

如果您考虑从 List 中删除元素的值,则 List 中的所有元素都将删除,因为所有元素都具有相同的值。

考虑索引来删除元素

所以只需使用

 List<Integer> mIds = new ArrayList<Integer>();
mIds.add(0,10);
mIds.add(1,10); // *
mIds.add(2,10);

mIds.remove(1); // 1 is index

现在 * 元素将被删除。

针对您的情况

mIds.remove(modifier.getId()); 

现在考虑您的代码。

    List<Integer> mIds = new ArrayList<Integer>();
mIds.add(0,10);
mIds.add(1,10);
mIds.add(2, 10);

int j=-1;
for (int i=0; i < mIds.size(); i++){
if (mIds.get(i) == 10){ // 0th element is 10
j=i; //then j=0
break; // breaks the for loop
}
}
if (j != -1){ // j=0 and this is true
mIds.remove(j); // now 0th element will remove
}

所以你的代码工作正常。没有办法删除所有元素,因为这个 remove() 在循环之外运行,所以肯定会删除一个或零个元素。

关于java - 如何从 arrayList 中删除一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405928/

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