Как получить элемент из ArrayList <ArrayList <String []>? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть массив списков, в котором есть строка [], т.е.

ArrayList<ArrayList> arraymain = new ArrayList<>();
ArrayList<String[]> arraysub = new ArrayList<>();

Теперь, добавляя элементы в arraysub,

arraysub.add(new String[]{"vary","unite"});
arraysub.add(new String[]{"new","old"});

Я пытался:

arraymain.get(0).get(0)[1];

Но я получаю сообщение об ошибке: ожидается тип массива; найдено 'java.lang.Object' Как теперь я могу получить данные (строка, хранящаяся в строке [])?

Ответы [ 2 ]

0 голосов
/ 06 мая 2018

Но arraymain принимает массивы только массива типа string. Если вы хотите хранить разные массивы разных типов в arraymain, тогда это будет решением:

ArrayList<ArrayList<Object[]>> arraymain = new ArrayList<ArrayList<Object[]>>();
ArrayList<Object[]> arraysub = new ArrayList<Object[]>();
arraysub.add(new String[]{"kk"});
arraymain.add(arraysub);
ArrayList<Object[]> arraysub2 = new ArrayList<Object[]>();
arraysub2.add(new Integer[]{1,2});
arraymain.add(arraysub2);
0 голосов
/ 06 мая 2018

Изменить тип внутреннего ArrayList:

ArrayList<ArrayList<String[]>> arraymain = new ArrayList<>();
ArrayList<String[]> arraysub = new ArrayList<>();

Таким образом, arraymain.get(0).get(0) вернет String[] вместо Object.

Было бы еще лучше, если бы вы объявили переменные как List s, вместо принудительного выполнения конкретной List реализации:

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