gpt4 book ai didi

java - 如何查找两个字符串数组的并集

转载 作者:行者123 更新时间:2023-11-29 09:39:17 25 4
gpt4 key购买 nike

我试图找到两个字符串数组的并集。我创建了一个新数组并将第一组中的所有数据复制到新数组中。我无法将第二组信息添加到新数组中。

我需要使用循环来搜索第二个数组并找到重复项。我不断收到 ArrayIndexOutOfBoundsException

这是我当前的代码:

static String[] union(String[] set1, String[] set2) {
String union[] = new String[set1.length + set2.length];

int i = 0;
int cnt = 0;

for (int n = 0; n < set1.length; n++) {
union[i] = set1[i];
i++;
cnt++;
}

for (int m = 0; m < set2.length; m++) {
for (int p = 0; p < union.length; p++) {
if (set2[m] != union[p]) {
union[i] = set2[m];
i++;
}
}
}
cnt++;

union = downSize(union, cnt);

return union;
}

最佳答案

进行交集或并集的标准方法是使用集合。您应该使用集合框架中的 Set 类。

为您的两个数组创建两个数组列表对象。
定义一个 Set 对象。
使用 addAll 方法将两个 arraylist 对象添加到 Set 中。

由于集合包含唯一的元素,集合形成了以下的并集 两个数组。

  //push the arrays in the list.
List<String> list1 = new ArrayList<String>(Arrays.asList(stringArray1));
List<String> list2 = new ArrayList<String>(Arrays.asList(stringArray2));

HashSet <String> set = new HashSet <String>();

//add the lists in the set.
set.addAll(list1);
set.addAll(list2);

//convert it back to array.
String[] unionArray = set.toArray(new String[0]);

关于java - 如何查找两个字符串数组的并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19394824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com