Как создать рваный массив в Java

Я хочу создать рваный массив (двумерный массив), в который пользователь вставляет значения по одному. Я бы обычно создавал их так:
int[][] array = {{1,2,3}, {6,7}} но я не знаю их размера заранее.
Как я могу создать такой массив?

2 ответа

Решение

Вы должны инициализировать неровный / рваный (тоже самое) массив следующим образом: int array[][] = new int[4][]; Тогда вы можете (например):

    array[0] = new int[5];
    array[1] = new int[5];
    array[2] = new int[5];
    array[3] = new int[5];

Тогда ты можешь:

for (int i = 0; i < 4; i++){
      for (int j = 0; j < i + 1; j++) {
        array[i][j] = i + j;
      }
}

И если вы хотите напечатать:

for (int i = 0; i < 4; i++) {
      for (int j = 0; j < i + 1; j++)
        System.out.print(array[i][j] + " ");
      System.out.println();
}

Вы получите вывод:

0
1 2
2 3 4
3 4 5 6

Конечно, если вы хотите получить ввод от пользователя, вы можете заменить любое назначение здесь на Scanner.nextInt();,

Изменить после комментария: Вы должны указать размер, если вы не хотите этого делать, используйте:

ArrayList<ArrayList<Integer>> array = new ArrayList<ArrayList<Integer>>();

Правильное использование сканера будет

Scanner input = new Scanner(System.in);
int variable = input.nextInt();

Ваша IDE должна включать в себя пакет java, чтобы вы могли использовать сканеры.

в отношении @Idos, с ArrayList, вы будете использовать

array.add(variable);

вместо того, чтобы просто выбрать индекс массива. Я уверен, что существует множество учебных пособий по использованию ArrayLists, в которых вы можете найти больше информации о них.

Другие вопросы по тегам