Как создать рваный массив в 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, в которых вы можете найти больше информации о них.