android - 如何在kotlin中使用groupby arraylist获取最后5个值的平均值
问题描述
我正在尝试按 arraylist 分组并获得最后 5 个项目的平均值。请任何人建议我我被困在这里
我到目前为止做的是这个
aproxXInfos.groupBy { it.mac }
.map { group ->
val beaconMac = group.key
val beaconAllValues = group.value
val averageRssi = beaconAllValues.sumBy { it.rssi } / beaconAllValues.size
println("Average rssi for beacon $beaconMac is $averageRssi")
}
这给了我来自特定组的所有值的平均值,但我只想从最后 5 个值中获取平均值。
我知道我快到了,但我被困在这里
任何帮助都会受到高度赞赏。
解决方案
您可以使用takeLast(n)
它将返回仅包含最后一项的列表n
。所以在你的情况下:
val beaconAllValues = group.value.takeLast(5)
推荐阅读
- grails - 如何将 Grails 从 Grails 2.4.4 升级到 Grails 3.3.6?
- hyperledger-fabric - 将新组织/对等方添加到 Hyperledger Fabric 网络时如何更新分类帐状态
- c# - .Net 4.0 和 .NET 4.7.2 标题选择之间 DataGridView 的重大变化
- c - 如何打印换行 ASCII?
- android - Android P - 警告:“Android OS 版本不兼容”
- pandas - 获取此熊猫系列中正数的百分比
- apache-spark - 查找 writeStream 操作写入的记录数:SparkListener OnTaskEnd 在结构化流中总是返回 0
- c++ - 确保 std::bind 提供正确数量的参数
- c - 在C中提取16位联合中的位位置
- python - 迭代逻辑——选择性列组合