写一个查询List交集并集的方法
时间: 2023-04-03 13:00:38 浏览: 79
好的,我可以回答这个问题。查询List交集可以使用Java中的retainAll方法,查询List并集可以使用Java中的addAll方法。具体实现可以参考以下代码:
// 查询List交集
List<Integer> list1 = Arrays.asList(1, 2, 3, 4);
List<Integer> list2 = Arrays.asList(3, 4, 5, 6);
list1.retainAll(list2);
System.out.println(list1); // 输出 [3, 4]
// 查询List并集
List<Integer> list3 = Arrays.asList(1, 2, 3, 4);
List<Integer> list4 = Arrays.asList(3, 4, 5, 6);
list3.addAll(list4);
System.out.println(list3); // 输出 [1, 2, 3, 4, 3, 4, 5, 6]
相关问题
用C语言线性表知识写一个求集合交集和并集的代码
#include <stdio.h>
#define MAXSIZE 100 // 定义线性表的最大长度
typedef struct {
int data[MAXSIZE]; // 线性表的存储空间
int length; // 线性表的长度
} List;
// 初始化线性表
void initList(List *list) {
list->length = 0;
}
// 向线性表中插入元素
void insert(List *list, int data) {
if (list->length >= MAXSIZE) {
printf("线性表已满\n");
return;
}
list->data[list->length++] = data;
}
// 求集合交集
List intersect(List list1, List list2) {
List result;
initList(&result);
int i, j;
for (i = 0; i < list1.length; i++) {
for (j = 0; j < list2.length; j++) {
if (list1.data[i] == list2.data[j]) {
insert(&result, list1.data[i]);
break;
}
}
}
return result;
}
// 求集合并集
List unionSet(List list1, List list2) {
List result;
initList(&result);
int i, j;
for (i = 0; i < list1.length; i++) {
insert(&result, list1.data[i]);
}
for (j = 0; j < list2.length; j++) {
for (i = 0; i < result.length; i++) {
if (list2.data[j] == result.data[i]) {
break;
}
}
if (i == result.length) {
insert(&result, list2.data[j]);
}
}
return result;
}
int main() {
List list1, list2;
initList(&list1);
initList(&list2);
// 向线性表1中插入元素
insert(&list1, 1);
insert(&list1, 2);
insert(&list1, 3);
insert(&list1, 4);
// 向线性表2中插入元素
insert(&list2, 3);
insert(&list2, 4);
insert(&list2, 5);
insert(&list2, 6);
// 求集合交集
List result1 = intersect(list1, list2);
printf("集合交集为:\n");
for (int i = 0; i < result1.length; i++) {
printf("%d ", result1.data[i]);
}
printf("\n");
// 求集合并集
List result2 = unionSet(list1, list2);
printf("集合并集为:\n");
for (int i = 0; i < result2.length; i++) {
printf("%d ", result2.data[i]);
}
printf("\n");
return 0;
}
java 交集并集查询列表内容中的关键字
您可以使用Java中的集合类来实现交集和并集查询。以下是一些示例代码,假设您有两个列表list1和list2,它们包含要查询的关键字:
1. 交集查询:
```
List<String> intersection = new ArrayList<>(list1);
intersection.retainAll(list2);
```
这将创建一个新的列表intersection,其中包含list1和list2的交集。
2. 并集查询:
```
Set<String> union = new HashSet<>(list1);
union.addAll(list2);
```
这将创建一个新的集合union,其中包含list1和list2的并集。请注意,使用HashSet而不是ArrayList是因为HashSet可以自动去重。
希望这些代码可以帮助您实现您的查询。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)