两个list取差集java代码
时间: 2023-06-23 17:51:17 浏览: 73
可以使用Java中的Collection的subtract方法来求两个List的差集,下面是一个简单的示例代码:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> diff = new ArrayList<>(list1);
diff.removeAll(list2);
System.out.println(diff); // [1, 2]
```
在这个示例中,我们首先定义了两个List,然后使用`new ArrayList<>(list1)`创建了一个新的List,将其初始化为`list1`的所有元素。接着,我们使用`removeAll()`方法从`diff`中移除`list2`中包含的元素,最后打印出`diff`的结果。
需要注意的是,`subtract()`方法返回的是一个新的集合,不会修改原有的集合。如果我们希望修改原有的集合,可以使用`removeAll()`方法。
相关问题
两个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并输出。
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的差集。