java对比两个list集合,判断是否相同,并返回不相同数据
时间: 2023-07-15 07:11:00 浏览: 85
可以使用Java 8的Stream API来实现这个功能。可以将两个List集合转换为Stream流,然后使用filter和contains方法来比较它们的元素是否相同,最后使用collect方法将不相同的元素收集起来。
下面是一个示例代码:
```
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class CompareLists {
public static void main(String[] args) {
List<Integer> list1 = new ArrayList<>();
list1.add(1);
list1.add(2);
list1.add(3);
List<Integer> list2 = new ArrayList<>();
list2.add(2);
list2.add(3);
list2.add(4);
List<Integer> diff = list1.stream()
.filter(e -> !list2.contains(e))
.collect(Collectors.toList());
System.out.println("List1: " + list1);
System.out.println("List2: " + list2);
System.out.println("Different elements: " + diff);
}
}
```
输出:
```
List1: [1, 2, 3]
List2: [2, 3, 4]
Different elements: [1]
```
这里使用了filter方法来过滤不相同的元素,即在list1中存在但不在list2中的元素,然后使用collect方法将这些元素收集到一个新的List中,即为不相同的数据。