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