kotlin - Kotlin:删除数组中相同的相邻成员
问题描述
如果我有以下数组:
[1,1,1,2,2,1,1,1,1,2,2,3]
Kotlin 中是否有任何内置方法可以过滤掉具有相同值的相邻元素,从而导致:
[1,2,1,2,3]
保留订单很重要。
PS我的实际用例不是整数,它是一个实现等于的对象。
解决方案
我认为没有标准功能可以做到这一点。但是很容易构建一个mapOrNull
:
fun <T : Any> Iterable<T>.removeAdjacent(): List<T> {
var last: T? = null
return mapNotNull {
if (it == last) {
null
} else {
last = it
it
}
}
}
推荐阅读
- java - 即使 Cassandra 关闭,Spring Boot 应用程序也应该启动
- reactjs - TypeError: Converting circular structure to JSON , Axios React Express
- swift - 如何在 swiftUI 中使用 Foreach 在 LazyVGrid 中获取一条线
- python - 如何使一个命令不需要 discord.py 前缀?
- anova - 方差分析的正态假设
- flutter - Flutter 和 Fire Storage:如何通过通知实际下载文件
- python - 无法使用python从dicom文件转换二进制数据
- apache - Apache mod_ext_filter:使用 sed 将字符串替换为变量或时间戳
- javascript - 词汇环境和全局环境有什么区别
- c - 在 C 中计算加泰罗尼亚语数