数组旋转程序的最佳动态数组分配技术

时间:2018-08-29 21:59:54

标签: java arrays dynamic

我制作了一个数组旋转程序,该程序将允许用户输入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)));

}

1 个答案:

答案 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时,您不需要知道用户输入的确切大小。

相关问题