嘿,我有嵌套串列,我想找到外部串列的最后一次出現索引值。我試圖在Kotlin Doc 中搜索。我嘗試了一些代碼,但失敗了。那么我怎樣才能以有效的方式在我的情況下做到這一點。
fun main() {
val value = listOf(
Group(0, mutableListOf(GroupValue(true, "1"))),
Group(1, mutableListOf(GroupValue(true, "2"))),
Group(2, mutableListOf(GroupValue(false, "3"))),
Group(3, mutableListOf(GroupValue(true, "4"))),
Group(4, mutableListOf(GroupValue(false, "5"))),
Group(5, mutableListOf(GroupValue(true, "6"))),
Group(6, mutableListOf(GroupValue(true, "6"), GroupValue(false, "7"))),
Group(7, mutableListOf(GroupValue(true, "6"), GroupValue(false, "7"))),
Group(8, mutableListOf(GroupValue(true, "6"), GroupValue(true, "7"), GroupValue(false, "7"))),
Group(9, mutableListOf(GroupValue(false, "6"), GroupValue(true, "7"))),
Group(10, mutableListOf(GroupValue(true, "7")))
)
val result = value.asSequence().flatMap { it.value }.indexOfLast { conversationItems ->
conversationItems?.isRead == false
}
println("result $result")
}
團體
data class Group(
val key: Int,
val value: MutableList<GroupValue?>
)
組值
data class GroupValue(
val isRead: Boolean? = null,
val id: String? = null
)
獲取上述代碼的輸出是
result 13
預期產出
result 9
我不知道我在上述邏輯中做錯了什么
uj5u.com熱心網友回復:
13 是正確的,因為您使用了flatMap,它將您的所有串列轉換為一個串列,并且您將獲得該更大的組合串列中專案的索引。
根據您所說的預期,我猜您想要包含false isReadGroupValue的最后一個 Group 的外部串列的索引。我會這樣做:
val result = value.indexOfLast { group ->
group.value.any { it?.isRead == false }
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/324778.html
