java 判断list1中不在list2中的集合
时间: 2024-05-06 08:16:54 浏览: 12
可以使用Java 8中的流操作来实现:
```java
List<String> list1 = Arrays.asList("a", "b", "c", "d");
List<String> list2 = Arrays.asList("b", "d", "e", "f");
List<String> result = list1.stream()
.filter(item -> !list2.contains(item))
.collect(Collectors.toList());
System.out.println(result); // [a, c]
```
这段代码中,我们通过`stream()`方法将`list1`转换成流,然后使用`filter()`方法来过滤出不在`list2`中的元素,最后使用`collect()`方法将结果收集到一个新的列表中。
相关问题
java 判断list1在list2中的集合
可以使用Java中的containsAll()方法来判断一个List是否是另一个List的子集。containsAll()方法会返回一个布尔值,如果传入的集合是调用集合的子集,则返回true,否则返回false。
以下是一个示例代码:
```java
List<String> list1 = Arrays.asList("a", "b", "c");
List<String> list2 = Arrays.asList("a", "b", "c", "d", "e");
boolean isSubset = list2.containsAll(list1);
if (isSubset) {
System.out.println("list1是list2的子集");
} else {
System.out.println("list1不是list2的子集");
}
```
在上面的代码中,我们先创建了两个List对象list1和list2,然后使用containsAll()方法判断list1是否是list2的子集,并根据结果输出相应的提示信息。
java 判断list1中不在list2中的集合并打印集合
可以使用 Java 8 的 Stream API 来实现。
假设有两个 List 集合 list1 和 list2,要找出 list1 中不在 list2 中的元素,可以这样写:
```java
List<String> list1 = Arrays.asList("a", "b", "c", "d", "e");
List<String> list2 = Arrays.asList("b", "d", "f");
List<String> diff = list1.stream()
.filter(item -> !list2.contains(item))
.collect(Collectors.toList());
System.out.println(diff);
```
输出结果为:
```
[a, c, e]
```
解释一下上面的代码:
1. 通过 `stream()` 方法将 list1 转换成一个流(Stream)。
2. 使用 `filter()` 方法过滤出 list1 中不在 list2 中的元素,即对于 list1 中的每个元素 `item`,只有当它不在 list2 中时才保留。
3. 使用 `collect()` 方法将过滤后的结果收集到一个新的 List 中。
4. 打印结果。
注意,这里假设 List 中的元素是字符串类型,如果是其他类型需要根据实际情况修改代码。