Java取出两个集合的交集
时间: 2024-06-08 19:07:09 浏览: 105
可以使用 Java 中的 `retainAll` 方法来取出两个集合的交集。这个方法会修改调用它的集合,使其只包含当前集合和指定集合中共有的元素。以下是示例代码:
```java
import java.util.*;
public class IntersectionExample {
public static void main(String[] args) {
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);
Set<Integer> set1 = new HashSet<>(list1);
Set<Integer> set2 = new HashSet<>(list2);
set1.retainAll(set2);
System.out.println("Intersection: " + set1);
}
}
```
上面的代码展示了如何使用 `retainAll` 方法来取出两个集合的交集。首先,我们将两个列表转换为集合,然后使用 `retainAll` 方法来修改 `set1`,以使其只包含 `set1` 和 `set2` 中共有的元素。最后,我们打印出结果集合。
相关问题
java8取出两个集合的交集
你可以使用Java 8中的stream API来取出两个集合的交集,这里给出一个示例代码:
```java
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> intersection = list1.stream()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(intersection); // 输出 [3, 4, 5]
```
在这个示例中,我们将两个集合转换为Java中的List对象,并使用Java 8中的stream API来遍历第一个集合list1,然后使用filter方法过滤出list2中包含的元素,最后使用collect方法将结果收集到一个新的List对象中。
java 取出俩个集合中不同的类
在Java中,如果你想要从两个集合(通常假设它们都是List或者Set)中找出不同的元素,可以采用多种方法。这里提供一种常见的解决方案:
1. 使用`removeIf()`和`retainAll()`方法:
```java
List<String> list1 = ...; // 集合1
List<String> list2 = ...; // 集合2
// 从list1中移除list2中存在的元素
list1.removeIf(list2::contains);
// 然后使用list1的elements添加到新的集合中,这样就包含了list1独有的元素
List<String> uniqueElements = new ArrayList<>(list1);
```
这种方法假设集合1的元素是集合2的超集,如果集合2的元素更多,你需要先将这两个集合合并再做处理。
2. 使用`HashSet`交集操作:
```java
Set<String> set1 = new HashSet<>(list1); // 将集合转为set方便计算唯一值
Set<String> set2 = new HashSet<>(list2);
// 计算并获取两个集合的不同部分
set1.removeAll(set2);
List<String> uniqueElements = new ArrayList<>(set1);
```
这会得到只存在于集合1中的元素列表。
阅读全文