Столкнулся с такой проблемой, как получение данных из листа. Казалось бы что всё просто, но вот не совсем. Вот смотрите:
ArrayList<String> a = new ArrayList<>();
a.add("1");
a.add("2");
a.add("3");
ArrayList<String> b = new ArrayList<>();
b.add(a.toString());
String splitStr = b.get(0);
System.out.println(splitStr);
Получаю данные такого вида:
[1, 2, 3]
Так вот собственно вопрос: Как получить доступ к этим элементам? Получился двумерный массив. Но не пойму как добраться до него? Пробовал вот так:
for(String getSplit : splitStr.split("([),(])")){System.out.println("str "+getSplit);}
Но остаются квадратные скобки.
str [1
str 2
str 3]
Т.е делаю что-то не так. Пробовал через regex
Pattern pat = Pattern.compile("([),(])");
Matcher mat = pat.matcher(splitStr);
while(mat.find())
{
System.out.println("str "+mat.group());
}
Получаю запятые. Есть ли стандартные методы какие-то? Что-бы не изобретать колесо.
В общем получилось вот так:
ArrayList<String> a = new ArrayList<>();
a.add("1");
a.add("2");
a.add("3");
ArrayList<ArrayList> b = new ArrayList<>();
b.add(a);
for(int q =0; q < b.size(); q++ )
{
for(int t=0; t< a.size(); t++)
{
System.out.println( b.get(q).get(t));
}
}
Всем спасибо за внимание.
`Может вот так будете использовать данную схему?
ArrayList<ArrayList<String>> arr2 = new ArrayList<>(); // один массив в другом массиве.
ArrayList<String> arr1 = new ArrayList<>();
arr1.add("1");
arr1.add("2");
arr1.add("3");
arr2.add(arr1);
System.out.println(arr2.get(0).toString()); // будет [1, 2, 3]
for (String s : arr2.get(0)) {
System.out.println(s);
}
вывод
[1, 2, 3]
1
2
3
квадратные скобки остаются, потому что в таком виде представляются элементы списка и не только. Обычно используется ClassName[element1 = value1, element2 = value2]
или ClassName[value1,value2]
, если в классе один тип данных, как в твоем случае.
Вот игровой цикл, перед тем как рисовать, блокируем канвас, рисуем и потом разблокируем и видим кадрКак я понял принцип такой