我制作了一个数组旋转程序,该程序将允许用户输入9个数字(其中9个只是为了测试它是否有效)。九个数字将存储到数组中,并在rotateArray()函数中旋转。我正在尝试使用户能够输入任意数量的数字。 arraylist是动态分配阵列容量的最佳方法吗?
int[] userArray = new int[9];
System.out.println("This program can also rotate arrays.\n" +
"Enter 9 single digit integers separated by spaces");
for(int i = 0; i<userArray.length; i++)
{
userArray[i] = scan.nextInt();
}
System.out.println("The array you entered is: " + Arrays.toString(userArray) +"\n"+
"When your array is rotated, it looks like this: \n" +
Arrays.toString(rotateArray(userArray)));
}
答案 0 :(得分:0)
arraylist是动态分配阵列容量的最佳方法吗?
是的,您可以使用Arraylists。但是最好的方法呢?说“是”将是一个大胆的答案,但显然在这种情况下最好使用。
在给定的场景中,它可以像这样使用:
//an arraylist
ArrayList<Integer> userArrayList = new ArrayList<Integer>();
System.out.println("This program can also rotate arrays.\n" + "Enter any numbers, type 'end' when you finish");
//flag for while loop, in case the user prompts "end"
boolean endNotPrompted = true;
//scanner
Scanner scan = new Scanner(System.in);
while(endNotPrompted) {
//if user input is a number
if(scan.hasNextInt() == true) {
int num = scan.nextInt();
userArrayList .add(num);
}
//if not a number, checks if the user wants to finish entering numbers
else if(scan.nextLine().equals("end")) {
endNotPrompted = false;
}
}
scan.close();
/*
*rest of your code
*/
使用ArrayList时,您不需要知道用户输入的确切大小。