Можно ли разбить значения в ArrayList на отдельные элементы
У меня есть ArrayList<String> mainLine, в нем хранится под индексом [0] один элемент, например - "hello". Можно ли разбить "hello" на отдельные элементы и переписать их в массив. То есть, h - [0], e - [1] и так далее. НО без громоздких решений, то есть без циклом и тому подобное. В идеале 1-3 строки кода.
Ответы (2 шт):
Автор решения: ЮрийСПб
→ Ссылка
На Kotlin можно. Вот так, например:
list.map{ it.split("").filter{ it.isNotEmpty() } }.flatten()
Проверка:
val list = listOf("hello", "world")
println(list)
val splitedList = list.map{ it.split("").filter{ it.isNotEmpty() } }.flatten()
println(splitedList)
Выведет:
[hello, world]
[h, e, l, l, o, w, o, r, l, d]
На Java можно аналогично, но я не знаю синтаксиса стримов, а гуглить некогда)
Автор решения: Roman Konoval
→ Ссылка
Используйте .flatMap:
List<String> mainLine = asList("hello", "world");
List<Character> flat =
mainLine.stream()
.flatMap(str -> str.chars().mapToObj(c -> (char)c))
.collect(Collectors.toList());