У меня есть Player
, который имеет Bag
с, и каждый Bag
имеет элементы (String
):Сбор предметов с Котлин потоков
class Player(val bags: List<Bag>)
class Bag(val items: List<String>)
я хочу собрать каждую сумку и каждый элемент его в одном списке. Использование вложенных для циклов я делаю так:
val player = Player(listOf(Bag(listOf("item1.1", "item1.2")), Bag(listOf("item2.1", "item2.2"))))
val list = mutableListOf<Any>()
for (bag in player.bags) {
list.add(bag)
for (item in bag.items) {
list.add(item)
}
}
//list contains [[email protected], item1.1, item1.2, [email protected], item2.1, item2.2]
Как я могу достичь такого же поведения с использованием потоков? Я попытался это, но я просто получить детали, а не мешки:
val list = player.bags.flatMap { bag -> bag.items }
Отлично благодаря! Я полностью согласен с тобой. На самом деле, я не пользуюсь списком, но я упростил его для вопроса. + 1 для этой точки. –
Спасибо за редактирование Кирилл. Я начал писать ответ, думая, что это вопрос Скалы: P – marstran