我想使用嵌套循环为两个整数数组创建一个联合数组。
这是我迄今为止的尝试:
import java.util.Scanner ;
public class array4 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter first array size:");
int size = input.nextInt();
int x[] = new int[size];
System.out.println("Enter first array elements:");
for (int i = 0; i < size; i++) {
x[i] = input.nextInt();
}
System.out.print("Enter second array size:");
int size2 = input.nextInt();
int y[] = new int[size2];
for (int i = 0; i < size2; i++) {
y[i] = input.nextInt();
}
System.out.println("Union");
for (int i = 0; i < size; i++) {
System.out.println(x[i]);
}
for (int i = 0; i < size2; i++) {
for (int z = 0; z < size; z++) {
if (y[i] != x[z]) {
System.out.println(y[i]);
}
}
}
}
}
最佳答案
假设我们将打印第二个数组中的所有数字,并且仅打印第一个数组中第二个数组中不存在的数字。所以
- 对于第一个数组中的每个元素
- 测试它是否存在于第二个数组中(迭代第二个数组中的元素并设置一些 boolean 标志,如
exists
为 true ifx[i]==y[j]
) - 如果第二个数组中不存在元素,则打印它
- 测试它是否存在于第二个数组中(迭代第二个数组中的元素并设置一些 boolean 标志,如
- 迭代第二个数组中的元素
- 并打印它们
算法看起来像
for (int i = 0; i <= x.length; i++) {// "<=" is not mistake,
// in last iteration we print all elements
// from second array
boolean exist = false;
for (int j = 0; j < y.length; j++) {
if (i < x.length) {
if (x[i] == y[j])
exist = true;
} else
System.out.println(y[j]);
}
if (!exist && i < x.length)
System.out.println(x[i]);
}
这个算法可能可以重写为更简单的东西,但我现在将其保留为这种形式。
关于使用嵌套循环的 Java Union 数组 2 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25840152/