我有两个清单。
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 2));
List<Integer> list2 = new ArrayList<>(Arrays.asList(2, 3, 4));
Run Code Online (Sandbox Code Playgroud)
我想删除的元素包含在list2从list1,正是多次,因为它们包含在list2。在上面的示例中:当我们删除列表1中存在于列表2中的元素时,我们应该得到结果[1, 2](由于仅包含的一个实例,因此2应该从中删除一次出现)。list1list22
我尝试过,list1.removeAll(list2);但得到的结果列表仅包含[1]。
实现此目标的最佳方法是什么?同时浏览两个列表对我来说似乎有点麻烦。