java比对两个list,找出list1与list2不同的值
时间: 2023-08-13 20:04:27 浏览: 92
你可以使用Java 8中的Stream API来比对两个List的不同值。下面是一个示例代码:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(1, 2, 4, 6, 8);
// 找到list1中没有出现在list2中的元素
List<Integer> removed = list1.stream().filter(e -> !list2.contains(e)).collect(Collectors.toList());
// 找到list2中没有出现在list1中的元素
List<Integer> added = list2.stream().filter(e -> !list1.contains(e)).collect(Collectors.toList());
// 将这些元素合并到一起
List<Integer> result = new ArrayList<>();
result.addAll(removed);
result.addAll(added);
System.out.println("Result: " + result); // 输出: Result: [3, 5, 6, 8]
```
在上面的代码中,我们使用Stream API中的`filter()`方法和`collect()`方法来找到list1和list2中不同的元素,然后将它们分别保存在`removed`和`added`变量中。最后,我们将这些元素合并到一起并保存在`result`变量中。注意,这种方法只能找到新增和删除的元素,不能找到修改的元素。如果你需要找到修改的元素,可以使用其他算法来实现。
阅读全文