Я хочу создать рваный массив (двумерный массив), который пользователь вставляет значения по одному. Я обычно создавал бы их так: int[][] array = {{1,2,3}, {6,7}}
, но я не знаю их размер заранее.
Как создать такой массив?Как создать оборванный массив в Java
ответ
Вы должны инициализировать неровный/рваный (то же самое) массив как это: 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, которые вы можете найти больше информации о них.
ı не знает длину массива. new int [4] []; в этом коде не знаю размер строки и размер столбца –