数组对比取得不重复n位数组合,演示结果
时间: 2023-12-12 12:03:03 浏览: 82
生成8位随机不重复的数字编号的方法
好的,以下是一个 Java 代码示例,可以获取两个数组的不重复 n 位数组合,并输出结果:
```java
import java.util.HashSet;
import java.util.Set;
public class ArrayCombination {
public static void main(String[] args) {
int[] arr1 = {1, 2, 3};
int[] arr2 = {3, 4, 5};
int n = 3; // n 位数组合
Set<String> set = new HashSet<>();
// 遍历所有组合
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
getCombination(arr1, arr2, n - 2, arr1[i] + "," + arr2[j], set);
}
}
// 输出不重复组合
for (String combination : set) {
System.out.println(combination);
}
}
// 递归生成 n 位数组合
private static void getCombination(int[] arr1, int[] arr2, int n, String prefix, Set<String> set) {
if (n == 0) {
set.add(prefix);
return;
}
for (int i = 0; i < arr1.length; i++) {
getCombination(arr1, arr2, n - 1, prefix + "," + arr1[i], set);
}
for (int i = 0; i < arr2.length; i++) {
getCombination(arr1, arr2, n - 1, prefix + "," + arr2[i], set);
}
}
}
```
在上面的示例中,我们定义了两个数组 arr1 和 arr2,以及一个整数 n,代表要获取的不重复 n 位数组合。然后,我们使用嵌套循环来遍历数组元素,并调用递归函数 getCombination 来生成 n 位数组合。最终,我们将所有不重复的组合存储在 HashSet 中,并输出结果。
假设 n=3,arr1={1,2,3},arr2={3,4,5},则上面的代码将输出如下结果:
```
1,3,4
1,3,5
1,4,3
1,4,5
1,5,3
1,5,4
2,3,4
2,3,5
2,4,3
2,4,5
2,5,3
2,5,4
3,4,5
```
阅读全文