2015-12-13 10 views
-3

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

ответ

0

Вы должны инициализировать неровный/рваный (то же самое) массив как это: 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>>(); 
+0

ı не знает длину массива. new int [4] []; в этом коде не знаю размер строки и размер столбца –

0

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

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

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

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

array.add(variable); 

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