将arraylists1和arraylist2之间相等的自定义对象删除到arraylist1中

时间:2018-11-06 10:34:06

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

我有2个arraylist,其中有list1和list2。它们都可以具有相同的自定义对象。说出员工类对象,该对象具有2个属性,即empId和empName。

List1和List2可以具有一些相等的对象。我的目标是将arraylist1和arraylist2中相等的对象删除到-> arraylist1中。

我尝试了以下代码段,但是,我在时间复杂度和空间复杂度方面寻求一种有效的解决方案/算法。

list1.removeAll(list1.stream().filter((list2)::contains).collect(Collectors.toList()); 

这还好吗,还是我们有更好的解决方案来使用Java 8来实现?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用removeIf进行一次遍历,如下:

list1.removeIf(list2::contains);