Мне нужно получить три уровня вниз в список массивов. Вот мой код о том, как создать конечный продукт «rowList»:Получить строку из ArrayList внутри ArrayList внутри ArrayList
ArrayList<ArrayList> rowList = new ArrayList<ArrayList>();
ArrayList<ArrayList<String>> appList =new ArrayList<ArrayList<String>>();
ArrayList<String> arr = new ArrayList<String>();
int Id = -1;
int cc = rsmd.getColumnCount();
while(rs.next()){
if(Id == -1){
arr.add(rs.getString("name"));
Id= Integer.parseInt(rs.getString("Id"));
}
if(Id!= Integer.parseInt(rs.getString("Id"))){
Id= Integer.parseInt(rs.getString("Id"));
rowList.add(appList);
appList = new ArrayList<ArrayList<String>>();
arr.add(rs.getString("name"));
}
for(int i=2; i < rsmd.getColumnCount();i++){
arr.add(rs.getString(rsmd.getColumnName(i)));
}
appList.add(arr);
arr = new ArrayList<>();
}
rowList.add(appList);
Так в конце концов rowlist будет выглядеть примерно так:
[0]
[0]
[0]Property 1
[1]Property 2
[2]Property 3
[1]
[0]Property 1
[1]Property 2
[2]Property 3
[1]
[0]
[0]Property 1
[1]Property 2
[2]Property 3
[1]
[0]Property 1
[1]Property 2
[2]Property 3
Так что мой вопрос будет, как добраться до свойства, последний уровень в вложенном массиве? Я могу использовать rowList.get (0) .get (0) .toString(), чтобы вернуть массив строк, но rowList.get (0) .get (0) .get (0) не работает, и вместо этого дает Ошибка: не удается найти символ.
Я также хотел бы иметь возможность удалить свойство после того, как я его извлечу, и установить его в строку. Эту часть можно легко проработать, так что она не является жизненно важной.
неоднократные звонки в 'Integer.parseInt (rs.getString («Id»))' очень лишними ... –
Когда я говорю, я получаю string array, я имею в виду, если я запустил это: rowList.get (0) .get (0) .toString(); то я получаю это: [Свойство1, Свойство2, Свойство3, Свойство4]. Это помогает? –
Можете ли вы показать код, который заполняет 'rowList'? –