java如何获取两个list集合重叠的部分
时间: 2023-05-24 15:00:56 浏览: 178
可以使用Java8的Stream API来获取两个列表的重叠部分。具体代码如下:
```
List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6, 7);
List<Integer> overlap = list1.stream()
.distinct()
.filter(list2::contains)
.collect(Collectors.toList());
System.out.println(overlap); // 输出 [3, 4, 5]
```
这段代码先将两个列表中重复的元素筛选出来,然后将结果转换为一个新的列表。
相关问题
java获取两个list集合中重复得内容
您可以使用Java 8中的stream和filter方法,结合使用Collection的retainAll方法来获取两个List集合中的重复元素。
示例代码:
```java
List<String> list1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
List<String> list2 = new ArrayList<>(Arrays.asList("b", "c", "d"));
list1.retainAll(list2); // 仅保留list1和list2中相同的元素
System.out.println(list1); // 输出结果为 [b, c]
```
上述代码将输出list1和list2中相同的元素,即[b,c]。
希望我的回答能对您有所帮助!
如何提取两个list集合重叠的部分
可以使用 Python 中的 set.intersection(),将两个 list 转化为 set 后取交集,示例如下:
```python
list1 = [1, 2, 3, 4, 5]
list2 = [4, 5, 6, 7, 8]
intersect = set(list1).intersection(set(list2))
result = list(intersect)
print(result) # [4, 5]
```
这样可以得到 list1 和 list2 的重叠部分 [4, 5]。