对于此程序,系统会要求用户输入数组中每个单元格的值,并且必须禁止用户输入结构中其他位置的值。注意我只能使用数组,而不能使用其他数据结构。
如何修改我的代码才能执行此操作?
这是我的代码:
public class UniqueArrayAdd {
int i, j;
public UniqueArrayAdd() {
int[][] arr3 = new int[3][3];
Scanner scan = new Scanner(System.in);
for (i = 0; i < arr3.length; i++) {
for (j = 0; j < arr3.length; j++) {
System.out.println("Enter a value");
// What to do to check the duplication
// If the input value is not duplicated then insert other wise //give "Already exist" message
arr3[i][j] = scan.nextInt();
}
}
// For printing array
for (i = 0; i < arr3.length; i++) {
for (j = 0; j < arr3.length; j++) {
System.out.print(arr3[i][j] + "\t");
}
System.out.println("");
}
}
public static void main(String[] args) {
new UniqueArrayAdd();
}
}
答案 0 :(得分:1)
朴素的方法是迭代数组的所有元素并进行比较。为此,您可以“重用”打印数组元素的代码。
我会尝试将代码移动到一个单独的方法来执行此操作。它可以是例如如果包含值则返回true,否则返回false。像这样的东西
boolean exists(final int value) {
for (i = 0; i < arr3.length; i++) {
for (j = 0; j < arr3.length; j++) {
if (arr3[i][j]==value) {
return true;
}
}
return false;
}