java 两个List<Integer> 删除相同数据
时间: 2023-07-14 11:14:12 浏览: 103
可以使用Java8的Stream API来解决这个问题。
首先,将两个List合并为一个List,然后使用`distinct()`方法去重,最后使用`collect()`方法将结果转换回List类型。
示例代码如下:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> result = Stream.concat(list1.stream(), list2.stream())
.distinct()
.collect(Collectors.toList());
System.out.println(result); // [1, 2, 3, 4, 5, 6, 7]
```
如果需要修改原来的List,可以使用`removeIf()`方法来删除相同的元素。示例代码如下:
```java
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
list1.removeIf(list2::contains);
System.out.println(list1); // [1, 2]
```
在这个示例中,我们使用了`removeIf()`方法和`contains()`方法来删除相同的元素。请注意,我们使用了`list2::contains`来作为`removeIf()`方法的参数,这是Java8中的方法引用,它等同于传递一个Lambda表达式。
阅读全文