Java Arraylist Arraylists - PullRequest
       19

Java Arraylist Arraylists

3 голосов
/ 13 ноября 2010

Привет, когда я хотел получить что-то вроде вектора векторов (элементы, конечно, будут упорядочены), я подумал о том, чтобы иметь arraylist of arraylists, но в C ++ я сделал бы это для доступа к элементу v.at(i).at(j)=5; и когда мне нужно было добавить новый элемент v.at(i).push_back(value); так как мне сделать это в Java? потому что я могу получить доступ только к внешнему массиву, но я не знаю, как добавить новые элементы ... и есть ли лучший способ для имитации вектора векторов C ++ в Java ??

p.s (это не матрица 3 * 2 для ex, но каждый массив может иметь разный размер)

Ответы [ 4 ]

7 голосов
/ 13 ноября 2010

Объявите ArrayList из ArraList<Integer> с:

ArrayList<ArrayList<Integer>> v = new ArrayList<ArrayList<Integer>>();
v.add(new ArrayList<Integer>());

v.get(0).add(new Integer(5));
v.get(0).add(new Integer(10));
System.out.println(v.get(0).get(0)); // => 5
System.out.println(v.get(0).get(1)); // => 10
4 голосов
/ 13 ноября 2010
List<List<Integer>> l = new ArrayList<List<Integer>>();

// initialize the inner lists
for (int i = 0; i < 10; i++) 
    l.add(new ArrayList<Integer>());


// now you can use it as you would like
l.get(i).add(5);
l.get(i).set(0, 3);
1 голос
/ 13 ноября 2010

Вы можете иметь List<List<Integer>> на Java.доступ к элементу будет list.get(i).get(j).Добавление также: list.get(i).add(var).Также взгляните на set(..) метод

0 голосов
/ 29 января 2013

Я пока не могу комментировать предыдущие комментарии, поэтому я опубликую их здесь.

Поскольку netbeans говорит, что нет необходимости писать

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

, потому что аргументы избыточны;вместо этого вы можете написать:

ArrayList< ArrayList< Integer>> v = new ArrayList<>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...