将我的元素值更改回零(Java)

时间:2016-11-02 10:59:13

标签: java arrays

所以在我的代码中,我问用户3件事:

  1. 向某个数组添加值
  2. 显示数组
  3. 清除阵列。
  4. 我似乎无法清除阵列。我想要它,以便我的数组网格将其所有值更改回零。我试过了Arrays.fill(MyGrid,null)Arrays.fill(MyGrid,0)

    两者都不将值设置回零。有什么我想念的吗?

     while(choice != 4)
    {
        try{
      System.out.println("\nPlease choice an option:"
                + "\n1. Add value into an array"
                + "\n2. Print Grid"
                + "\n3. Clear Grid"
                + "\n4. Quit");
    
      choice = Integer.parseInt(myScan.nextLine());
    
        if(choice == 1)
        {
             System.out.println("Enter a row to put data into:  ");
      xRow = Integer.parseInt(myScan.nextLine());
      System.out.println("Enter a column to put data into:  ");
      xCol = Integer.parseInt(myScan.nextLine());
        System.out.println("Enter desired value: ");
    
     userData = Integer.parseInt(myScan.nextLine());
    
      MySize[xRow][xCol] = userData; 
    
        }
        else if(choice == 2)
        {
            for(int rowcntr = 0; rowcntr < userRow; rowcntr++)
       {
           for(int colcntr = 0; colcntr < userCol; colcntr++)
           {
               System.out.print(MySize[rowcntr][colcntr] + " ");
           }
           System.out.println();
       }
        }
        else if(choice == 3)
        {
            Arrays.fill(MySize,0);
    
        }
    

    所以这是代码的一部分,它在一个循环中,所以每次我输入一个新值,我都可以显示它。

2 个答案:

答案 0 :(得分:1)

由于您的数组MySize[][]是二维的,因此无法使用

Arrays.fill(MySize, 0);

因为这个方法是为一维数组定义的。 See here!
使用

for(int[] row : MySize){
    Arrays.fill(row, 0);
}

代替。这将迭代您可以使用Arrays.fill方法填充的一维行数组。

答案 1 :(得分:0)

我已经运行了这段代码。它工作正常:

public class ArrayTest {
    public static void main(String[] args) {
        int[] a = {1,2,3,4,5,6};
        System.out.println(Arrays.toString(a)); // prints [1, 2, 3, 4, 5, 6] 
        Arrays.fill(a, 0);
        System.out.println(Arrays.toString(a)); // prints [0, 0, 0, 0, 0, 0]
    }
}