Лучший метод динамического выделения массива для программы вращения - PullRequest
0 голосов
/ 30 августа 2018

Я сделал программу ротации массивов, которая позволит пользователю вводить девять чисел (девять только для проверки его работы). Девять чисел будут сохранены в массив и повернуты в функции 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 голосов
/ 30 августа 2018

Будет ли 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 вам не нужно знать точный размер пользовательского ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...