java两个List取差集
时间: 2023-08-22 19:03:36 浏览: 104
可以使用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的差集。
java 两个list取差集
在Java中,我们可以使用List接口中的retainAll()方法来取两个List的交集,也可以使用removeAll()方法来取两个List的差集。下面是一个示例代码:
```
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对象list1和list2,并分别初始化为包含一些整数的ArrayList对象。然后,我们使用removeAll()方法来取list1和list2的差集,即从list1中删除与list2相同的元素。最后,我们输出list1的内容,可以看到结果为[1, 2],即取差集的结果。
阅读全文