gpt4 book ai didi

java - 从数组列表中删除项目

转载 作者:行者123 更新时间:2023-12-01 18:35:58 26 4
gpt4 key购买 nike

在我的程序中,我有一个字符串列表和一个整数值列表,应从第一个列表中删除它们。想想这样的事情:

ArrayList<String> items = new ArrayList<String>();
items.add("A"); items.add("B"); items.add("C");

ArrayList<Integer> del = new ArrayList<Integer>();
del.add(1); del.add(2);

当然,我可以使用此代码循环遍历列表并删除项目:

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

但问题就在这里。删除第一个元素后,索引发生移动,因此我删除了错误的项目。有没有一个优雅的解决方案?

最佳答案

对删除列表进行降序排序,然后迭代:

Collections.sort(del, Collections.reverseOrder());
for (Integer toDelete : del) {
// casting to int, because you need #remove(int), not #remove(Object)
items.remove((int)toDelete);
}

[编辑]已修复。抱歉,一开始就搞反了两次。

[edit2]添加了必要的 Actor :)

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

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