2017-01-30 4 views
-2

У меня есть способ познакомиться с использованием только Python, и я не могу понять, есть ли более простой способ добавить вложенные объекты.Java: объявление значений объекта при попытке добавить к другому объекту

Пример создания вложенного списка в Python это просто:

list = [[1,2,3],[2,2,2],[3,3,3]] 

Есть ли способ сделать что-то подобное в Java? Или я должен объявить пустой объект, а затем добавить по одному, как

Vector<Vector<String>> example = new Vector<Vector<String>>(); 
String[] thisIsAStringArray = {"AAA", "BBB", "CCC", "DDD", "EEE"}; 
Vector<String> example2 = new Vector<String>(); 
example2.addAll(Arrays.asList(thisIsAStringArray)); 
example.addElement(example2); 

Мол, там должно быть более быстрым способом правильно?

+3

Java не является Python; и статическая типизация требует большего набора текста (в общем случае). Однако в вашем конкретном примере 'int [] [] list = {{1,2,3}, {2,2,2}, {3,3,3}};' –

+0

Литералы коллекции реализуются на Java 9, так что вам придется подождать еще около 7 месяцев. Тем не менее, вы можете инициализировать массивы со значениями 'int [] array = {1, 2, 3, ...};' и перечислять «Список list = Arrays.asList (1, 2, 3, ...);' –

+0

Существует полезное сообщение для проверки: [Создание и создание экземпляров массивов] (http://stackoverflow.com/documentation/java/99/arrays/404/creating-and-initializing-arrays#t=201607261943570177) –

ответ

0

Вы можете объявить массив в строке:

int[][] array = {{1,2,3},{2,2,2},{3,3,3}}; 
0

Вы можете попробовать следующий способ:

Vector<Vector<String>> example = new Vector<Vector<String>>(Collections.singleton(new Vector<String>(Arrays.asList("AAA", "BBB", "CCC", "DDD", "EEE")))); 

В Java objects нужно быть построены или может быть назначен с уже построенными объектами. (Одно исключение - объекты String, которые могут быть построены из литерала, без необходимости явного вызова конструктора). В Java массивы (которые также считаются объектами) могут быть инициализированы из списка объектов или литералов. Но так как вы используете класс Vector, вам нужно построить объекты, вызвав конструкторы.

Однако, если у вас нет жесткого требования использования Vector или других параметрических объектов сбора, вы можете использовать простые строковые массивы здесь:

String[][] example = new String[][] {{"AAA", "BBB"}, {"CCC", "DDD"}};