java两个List取差集
时间: 2023-08-22 17:03:36 浏览: 51
可以使用Java 8中的Stream API来计算两个List的差集,具体方法如下:
```java
List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("b", "c", "d");
List<String> difference = list1.stream()
.filter(element -> !list2.contains(element))
.collect(Collectors.toList());
System.out.println("List1: " + list1);
System.out.println("List2: " + list2);
System.out.println("Difference: " + difference);
```
输出结果为:
```
List1: [a, b, c]
List2: [b, c, d]
Difference: [a]
```
这个例子中,list1和list2分别为两个String类型的List,我们使用了Stream API中的filter方法来筛选出不在list2中的元素,然后使用collect方法将这些元素收集到一个新的List中。
相关问题
java两个list取差集
要计算两个List的差集,可以使用Java 8的Stream API和Collection的removeAll()方法。首先,将两个List转换为Stream,然后调用第一个List的removeAll()方法并传入第二个List作为参数。这将从第一个List中移除与第二个List中相同的元素,得到差集。
以下是一个示例代码:
List<T> list1 = new ArrayList<>();
List<T> list2 = new ArrayList<>();
// 假设已经初始化并填充了list1和list2
List<T> difference = new ArrayList<>(list1);
difference.removeAll(list2);
在这个例子中,difference列表将包含list1与list2的差集。
两个list取差集 java
以下是两个list取差集的Java代码示例:
```java
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5, 6, 7));
list1.removeAll(list2);
System.out.println(list1); // 输出:[1, 2]
```
上述代码中,我们首先创建了两个List,然后使用removeAll()方法从list1中移除了list2中包含的元素,最后输出了list1的结果,即差集。
另外,Java 8中也提供了stream()和filter()方法来实现两个List的差集:
```java
List<Integer> list1 = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
List<Integer> list2 = new ArrayList<>(Arrays.asList(3, 4, 5, 6, 7));
List<Integer> diff = list1.stream().filter(num -> !list2.contains(num)).collect(Collectors.toList());
System.out.println(diff); // 输出:[1, 2]
```
上述代码中,我们使用了Java 8中的stream()和filter()方法,将list1中不包含在list2中的元素筛选出来,最后使用collect()方法将结果转换为List并输出。