所以在我的代码中,我问用户3件事:
我似乎无法清除阵列。我想要它,以便我的数组网格将其所有值更改回零。我试过了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);
}
所以这是代码的一部分,它在一个循环中,所以每次我输入一个新值,我都可以显示它。
答案 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]
}
}