Tho*_*mmy 4 foreach iterator kotlin
我有一个(可变的)物品清单。我想遍历此列表并检查每个项目的特定条件。满足条件时,我想在特定索引处插入(而不是替换)新项目。
在Kotlin中,最优雅的方法是什么?
PS我还没有代码示例,因为我想不出一个好方法。
编辑:用例:我想为特定项目组的列表视图添加标题。
如果您有可变列表,则可以获取其可变listIterator列表,并在迭代过程中使用该迭代器对其进行修改。
例如,在每个项目之后插入一个代表偶数的字符串:
val list = mutableListOf("1", "2", "3", "4")
val iterator = list.listIterator()
for (item in iterator) {
if (item.toInt() % 2 == 0) {
iterator.add("^ That was even")
}
}
list.forEach { println(it) }
Run Code Online (Sandbox Code Playgroud)
或在当前字符串之前插入一个字符串:
val iterator = list.listIterator()
for (item in iterator) {
if (item.toInt() % 2 == 0) {
iterator.previous()
iterator.add("Next will be even:")
iterator.next()
}
}
list.forEach { println(it) }
Run Code Online (Sandbox Code Playgroud)
我用它解决了groupBy
val map = mutableList.map {
val groupItems = it.groupBy { (it as ListItem).section}
val mappedItems = mutableListOf<ListBaseItem>()
groupItems.forEach { section, items ->
mappedItems.add(ListHeaderItem(section, section))
mappedItems.addAll(items)
}
mappedItems
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7850 次 |
| 最近记录: |