1
我有一个Player
有Bag
s,而每个Bag
具有项目(String
):与科特林收集物品流
class Player(val bags: List<Bag>)
class Bag(val items: List<String>)
我想收集每个袋中并在一个列表中它的每个项目。使用嵌套for循环,我这样做:
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。 –
感谢编辑Kirill。我开始写这个答案,认为这是一个斯卡拉问题:P – marstran