我正在做一个编程项目,其中一部分要求我从对象数组列表中删除一些对象。我的想法是遍历该数组列表(让我们称之为 main_list )并查看哪些需要删除,并将这些索引保存在另一个整数数组列表中(让我们称之为临时),在一切完成后我将去做类似的事情:
for (int i=0;i<temp.size();i++){
main_list.remove(temp.get(i));
}
但是在我做了这个之后,我意识到数组列表中的元素在删除某些内容后位置发生了变化。 我通过从索引 0 到 main_list.size() 遍历 main_list 来创建临时值,所以我想也许我可以做类似的事情
for (int i=0;i<temp.size();i++){
main_list.remove(temp.get(i)-i);
}
当时主列表中的偏移量与元素在 temp 中的位置相同。
所以我只是想知道这个逻辑是否正确?这可以抵消 main_list 中删除索引的变化吗? 如果没有,我该怎么做这样的事情?
编辑:我知道在搜索中找到它们后立即删除可能会更好,但在我的程序中,除了删除之外,我还有许多其他方法需要在整个数组列表上搜索,所以我不能真的这样做
最佳答案
您可以简单地将有效项目添加到新的列表
并丢弃旧列表。
关于java - 要从另一个数组列表中删除的索引数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48492593/