java筛选出一个集合有另一个集合没有的数据
时间: 2024-10-19 11:17:12 浏览: 29
在Java中,如果你想从一个集合(通常称为`Set`或`List`)中找出另一个集合(也同为`Set`或`List`)所没有的数据,可以使用Java 8引入的Stream API来实现。这里有一个简单的例子:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Main {
public static void main(String[] args) {
// 创建两个集合
List<String> setA = new ArrayList<>();
setA.add("A");
setA.add("B");
setA.add("C");
Set<String> setB = new HashSet<>();
setB.add("B");
setB.add("D");
// 使用Stream API找出setB中不在setA里的元素
List<String> uniqueInSetB = setA.stream()
.filter(setB::contains) // 检查元素是否在setB中
.filter(set -> !set.equals(setB)) // 筛选出setB中独有的
.collect(Collectors.toList());
System.out.println(uniqueInSetB); // 输出: [D]
// 或者直接使用Java 8之前的API,如交集和排除操作
List<String> diff = new ArrayList<>(setA);
diff.removeAll(setB);
System.out.println(diff); // 输出: [A, C]
}
}
```
在这个例子中,我们首先创建了两个集合`setA`和`setB`。然后通过流(Stream)操作,筛选出那些在`setA`中存在但在`setB`中不存在的元素。
阅读全文