Java 阵列旋转程序的最佳动态阵列分配技术

Java 阵列旋转程序的最佳动态阵列分配技术,java,arrays,dynamic,Java,Arrays,Dynamic,我制作了一个数组旋转程序,允许用户输入九个数字(九个只是为了测试它是否有效)。这九个数字将存储在一个数组中,并在rotateArray()函数中旋转。我正试图让用户能够输入他们想要的任意数量的数字。arraylist是动态分配阵列容量的最佳方式吗 int[] userArray = new int[9]; System.out.println("This program can also rotate arrays.\n" + "Enter 9 sing

我制作了一个数组旋转程序,允许用户输入九个数字(九个只是为了测试它是否有效)。这九个数字将存储在一个数组中,并在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)));
int[]userArray=newint[9];
System.out.println(“此程序还可以旋转数组。\n”+
“输入9个以空格分隔的单位数整数”);
对于(int i=0;i

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)));
是的,你可以使用ArrayList。但是最好的方法是说“是”会是一个大胆的回答,但显然在这种情况下使用更好

在给定场景中,它可以这样使用:

    //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 userArrayList=新的ArrayList();
System.out.println(“此程序还可以旋转数组。\n”+“输入任何数字,完成后键入'end'”);
//while循环的标志,以防用户提示“结束”
布尔值endNotPrompted=true;
//扫描器
扫描仪扫描=新扫描仪(System.in);
while(endnotpromoted){
//如果用户输入是一个数字
if(scan.hasNextInt()==true){
int num=scan.nextInt();
userArrayList.add(num);
}
//如果不是数字,则检查用户是否希望完成数字输入
else if(scan.nextLine().equals(“end”)){
endNotPrompted=false;
}
}
scan.close();
/*
*代码的其余部分
*/

使用ArrayList时,您不需要知道用户输入的确切大小。

“ArrayList是否是动态分配阵列容量的最佳方式?”是的。此外,不清楚您所说的“旋转”是什么意思。如果我输入“1 2 3 4 5 6 7 8 9”,程序将返回“9 8 7 6 4 3 2 1”。很抱歉,我说得不清楚。