java实现一个list集合与另一个list集合的交集
时间: 2024-03-10 13:45:48 浏览: 71
可以使用Java的Collection中的retainAll()方法来实现两个List集合的交集。示例代码如下:
```java
List<String> list1 = new ArrayList<>(Arrays.asList("A", "B", "C", "D"));
List<String> list2 = new ArrayList<>(Arrays.asList("B", "D", "E", "F"));
list1.retainAll(list2);
System.out.println(list1); // 输出 [B, D]
```
上述代码中,先分别创建了两个List集合list1和list2,然后调用了list1的retainAll方法,传入list2作为参数,这样就会将list1中不在list2中的元素删除,最终输出list1中的元素即为两个集合的交集。
相关问题
java List集合去掉另一个List集合的交集部分
可以使用Java 8的Stream API来实现这个功能。具体步骤如下:
1. 将第二个List集合转换为Set集合,提高查找效率。
2. 使用stream()方法将第一个List集合转换成流。
3. 使用filter()方法过滤出不包含第二个List集合中元素的元素。
4. 使用collect()方法将流转换回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));
Set<Integer> set2 = new HashSet<>(list2); // 转换为Set集合
List<Integer> result = list1.stream()
.filter(item -> !set2.contains(item)) // 过滤掉第二个List集合中的元素
.collect(Collectors.toList()); // 转换回List集合
System.out.println(result); // 输出 [1, 2]
```
这段代码输出的结果是一个List集合,其中包含第一个List集合去掉第二个List集合中元素后的剩余元素。
java 三个list集合取交集
在 Java 中,如果你想从三个 List 集合中获取交集,可以使用 HashSet 或者自定义算法来完成。这里我将提供一种使用 HashSet 的简单方法:
首先,假设你有三个 List<String>,分别叫做 list1、list2 和 list3。
```java
List<String> list1 = ...;
List<String> list2 = ...;
List<String> list3 = ...;
// 使用 HashSet 的特性来获取交集,HashSet 不包含重复元素
Set<String> intersection = new HashSet<>(list1);
intersection.retainAll(list2); // 现在 intersection 包含 list1 和 list2 的交集
intersection.retainAll(list3); // 再次保留与 list3 的交集
// 将结果转换回 List 如果需要
List<String> resultIntersection = new ArrayList<>(intersection);
//
阅读全文
相关推荐















