Java - списки как элементы двумерного массива

-8

Это может быть странный вопрос, но...

Как я могу использовать List/ArrayList как тип для 2D-массива?

В случае, если я не объясню себя должным образом:

int[][] arrayName = new int[9][9];

В этом примере я хочу использовать ArrayList<int> вместо просто int, но мне не разрешено. Либо это, либо я, вероятно, неправильно использую синтаксис.

Edit: Похоже, я не был достаточно ясен с моим вопросом (и написал вводящее в заблуждение название, мое плохое, исправляя его сейчас).

У меня есть сетка с 2D-массивом, подобная приведенному выше примеру, но я хочу, чтобы ArrayList из целых элементов был элементом отдельных ячеек этой сетки.

ArrayList<Integer>[][] grid = new ArrayList<Integer>()[9][9]

Что-то вроде этого. Это правильный синтаксис? Мне даже разрешено это делать?

спросил(а) 2018-10-18T18:16:00+03:00 1 год, 5 месяцев назад
0
80

Между <> должен быть class. В вашем случае Integer

Чтобы сделать 2D ArrayList вы можете сделать это:

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

ArrayList<Integer> b = new ArrayList<Integer>();
b.add(1); b.add(2); b.add(3); b.add(4); b.add(5); b.add(6);

ArrayList<Integer> c = new ArrayList<Integer>();
c.add(3); c.add(7); c.add(1); c.add(3); c.add(9);

ArrayList<Integer> d = new ArrayList<Integer>();
d.add(8); d.add(3); d.add(3); d.add(8); d.add(3); d.add(6);

ArrayList<Integer> e = new ArrayList<Integer>();
e.add(7); e.add(2); e.add(8);

a.add(b); a.add(c); a.add(d); a.add(e);

for(ArrayList<Integer> aux : a) {

for(Integer temp : aux) {

System.out.print(temp + " ");

}

System.out.println("");

}

//1 2 3 4 5 6
//3 7 1 3 9
//8 3 3 8 3 6
//7 2 8

ответил(а) 2018-10-18T18:29:00+03:00 1 год, 5 месяцев назад
37

Поскольку вы не можете использовать примитивный тип (int в вашем случае) в коллекции, вам нужно будет использовать Interger-обертку

поэтому список из 2-мерных массивов должен быть


List<List<Interger>> array = new ArrayList<List<Interger>>();

ответил(а) 2018-10-18T18:26:00+03:00 1 год, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема