如何在Java中向二维数组插入唯一值?

时间:2016-12-24 20:01:27

标签: java arrays

对于此程序,系统会要求用户输入数组中每个单元格的值,并且必须禁止用户输入结构中其他位置的值。注意我只能使用数组,而不能使用其他数据结构。

如何修改我的代码才能执行此操作?

这是我的代码:

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();
  }
}

1 个答案:

答案 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;
}