algorithm - 将 arraylists1 和 arraylist2 之间相等的自定义对象移除到 arraylist1

标签 algorithm data-structures java-8 time-complexity space-complexity

我有 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/

相关文章:

algorithm - 谁知道石头和背包的算法?

python - 从字典键中的所有元组中提取特定位置

Java 流 : Filter with multiple ranges

java - 使用java流获取字符串占位符列表

arrays - 数组从左上角到右下角的路数

javascript - 在 HTML 中绘制树结构

algorithm - 检测历史体育比赛数据趋势的编程技术

algorithm - 基于 Big O 的算法运行时间比较

c++ - 这些时间复杂度是否正确

java - 在 Cucumber java 的特定步骤中访问 Cucumber 中的场景对象