设计求两个集合的交集的代码
时间: 2024-04-29 19:25:34 浏览: 9
假设集合A和集合B分别为两个列表,可以使用Python中的set()函数将列表转换为集合,然后使用&运算符求两个集合的交集,最后将交集转换为列表。
示例代码如下:
```python
A = [1, 2, 3, 4, 5]
B = [3, 4, 5, 6, 7]
# 将列表转换为集合
set_A = set(A)
set_B = set(B)
# 求交集
intersection = list(set_A & set_B)
print(intersection) # 输出:[3, 4, 5]
```
另外,如果不想使用set()函数,也可以使用列表推导式来实现求交集的功能,示例代码如下:
```python
A = [1, 2, 3, 4, 5]
B = [3, 4, 5, 6, 7]
# 求交集
intersection = [x for x in A if x in B]
print(intersection) # 输出:[3, 4, 5]
```
这里使用了列表推导式,遍历集合A中的每个元素,如果该元素同时也在集合B中,就将其添加到交集中。
相关问题
求两个集合的交集 java
可以使用 Java 中的 Set 类来实现两个集合的交集。具体步骤如下:
1. 创建两个 Set 对象,分别存储两个集合的元素。
```java
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));
```
2. 调用 Set 类中的 retainAll() 方法求两个集合的交集。
```java
set1.retainAll(set2);
```
3. 最终的交集结果将保存在 set1 中。
```java
System.out.println(set1); // 输出 [3, 4, 5]
```
完整代码如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Set<Integer> set1 = new HashSet<>(Arrays.asList(1, 2, 3, 4, 5));
Set<Integer> set2 = new HashSet<>(Arrays.asList(3, 4, 5, 6, 7));
set1.retainAll(set2);
System.out.println(set1); // 输出 [3, 4, 5]
}
}
```
hashSet求两个集合的交集
可以使用两个for循环遍历两个集合,将它们的元素逐一比较,如果相同则加入一个新的集合中,这个新的集合就是它们的交集。代码如下:
public static <T> Set<T> intersection(Set<T> set1, Set<T> set2) {
Set<T> intersection = new HashSet<T>();
for (T t : set1) {
if (set2.contains(t)) {
intersection.add(t);
}
}
return intersection;
}
如果使用Java 8及以上版本,可以使用stream API来实现:
public static <T> Set<T> intersection(Set<T> set1, Set<T> set2) {
return set1.stream().filter(set2::contains).collect(Collectors.toSet());
}
这样就可以方便地求出两个集合的交集了。