java - 要从另一个数组列表中删除的索引数组列表

标签 java arraylist

我正在做一个编程项目,其中一部分要求我从对象数组列表中删除一些对象。我的想法是遍历该数组列表(让我们称之为 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/

相关文章:

java - 在 ArrayList 中查找可被 3 整除的数字

java - 在 Java 中将 JSON 转换为 List<List<String>>

java - double 失败 - 无法使用大十进制

java - 如何仅用新文本替换 SWT 中选定的文本

java - MOXy JAXB javax.xml.bind.PropertyException

java - 如何将java程序从数组修改为arraylist对象?

java - 为什么这不能编译 : List<List<String>> lss = new ArrayList<ArrayList<String>>();

java - 无法实例化 Activity ComponentInfo 无法实例化类

java - 如何在 Spring Data JPA 中获取最后一页作为默认值

java - 如何提高数组列表的获取速度?