Можно ли разбить значения в 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());
→ Ссылка