如何使用java对三个存放String数据类型的HashSet求交集
时间: 2024-05-10 07:20:37 浏览: 4
可以使用Java Set的retainAll()方法来求交集。该方法将修改HashSet,使其仅包含两个Set之间的共同元素。
以下是示例代码:
```java
Set<String> set1 = new HashSet<>();
Set<String> set2 = new HashSet<>();
Set<String> set3 = new HashSet<>();
// 添加元素到set1、set2、set3中
set1.retainAll(set2);
set1.retainAll(set3);
// set1现在包含set1、set2和set3之间的共同元素
```
相关问题
java如何求三个HashSet的交集
你好,关于你的问题,可以使用Java中的retainAll()方法来求三个HashSet的交集。具体实现可以参考以下代码:
HashSet<Integer> set1 = new HashSet<>();
set1.add(1);
set1.add(2);
set1.add(3);
HashSet<Integer> set2 = new HashSet<>();
set2.add(2);
set2.add(3);
set2.add(4);
HashSet<Integer> set3 = new HashSet<>();
set3.add(3);
set3.add(4);
set3.add(5);
set1.retainAll(set2);
set1.retainAll(set3);
System.out.println("三个HashSet的交集为:" + set1);
当然,以上只是一个简单的示例,如果你需要求多个集合的交集,可以使用循环来实现。希望能帮到你!
java定义俩个int类型数组求交集并集
可以使用Java中的Set集合来求解数组的交集和并集。
求交集:
```java
int[] arr1 = {1, 2, 3, 4};
int[] arr2 = {3, 4, 5, 6};
Set<Integer> set1 = new HashSet<Integer>();
for (int i = 0; i < arr1.length; i++) {
set1.add(arr1[i]);
}
Set<Integer> set2 = new HashSet<Integer>();
for (int i = 0; i < arr2.length; i++) {
set2.add(arr2[i]);
}
set1.retainAll(set2);
int[] intersection = new int[set1.size()];
int index = 0;
for (Integer i : set1) {
intersection[index++] = i;
}
System.out.println(Arrays.toString(intersection)); // 输出 [3, 4]
```
求并集:
```java
int[] arr1 = {1, 2, 3, 4};
int[] arr2 = {3, 4, 5, 6};
Set<Integer> set1 = new HashSet<Integer>();
for (int i = 0; i < arr1.length; i++) {
set1.add(arr1[i]);
}
Set<Integer> set2 = new HashSet<Integer>();
for (int i = 0; i < arr2.length; i++) {
set2.add(arr2[i]);
}
set1.addAll(set2);
int[] union = new int[set1.size()];
int index = 0;
for (Integer i : set1) {
union[index++] = i;
}
System.out.println(Arrays.toString(union)); // 输出 [1, 2, 3, 4, 5, 6]
```