【发布时间】:2019-04-09 17:48:06
【问题描述】:
我有 2 个数组列表,列表 1 和列表 2。它们都可以有相同的自定义对象。说员工类对象,它有 2 个属性,即 empId 和 empName。
List1 和 List2 可以有一些相等的对象。我的目标是将arraylist1和arraylist2中相等的对象删除到-> arraylist1中。
我已经尝试了下面的 sn-p,但是,我正在寻找一种在时间复杂度和空间复杂度方面有效的解决方案/算法。
list1.removeAll(list1.stream().filter((list2)::contains).collect(Collectors.toList());
这样可以吗,还是我们有更好的解决方案来使用 java 8 实现这一点?谢谢你的帮助。
【问题讨论】:
-
"remove into" 很难理解。我想你的意思是你想用
list1和list2的交集替换list1。所以如果list1=[1,2,3,4]和list2=[2,4,9],那么最后是list1=[2,4]。对吗? -
或者您是否希望
list1包含list2中不 的项目?你真的需要澄清你的问题。 -
我希望 list1 包含不在列表 2 中的项目。
标签: algorithm data-structures java-8 time-complexity space-complexity