我有 2 个数组列表 list1 和 list 2。它们都可以有相同的自定义对象。假设员工类对象,它有 2 个属性,即 empId 和 empName。
List1 和 List2 可以有一些相同的对象。我的目标是将 arraylist1 和 arraylist2 中相等的对象删除到 --> arraylist1 中。
我已经尝试了下面的代码片段,但是,我正在寻找一种在时间复杂度和空间复杂度方面的有效解决方案/算法。
list1.removeAll(list1.stream().filter((list2)::contains).collect(Collectors.toList());
这样可以吗?或者我们是否有更好的解决方案来使用 Java 8 实现此目的?感谢您的帮助。
最佳答案
您可以使用 removeIf
它进行一次遍历:
list1.removeIf(list2::contains);
关于algorithm - 将 arraylists1 和 arraylist2 之间相等的自定义对象移除到 arraylist1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53170133/