首页 > 解决方案 > 如何在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 个值中获取平均值。

我知道我快到了,但我被困在这里

任何帮助都会受到高度赞赏。

标签: androidkotlinarraylistgroup-byaverage

解决方案


您可以使用takeLast(n)它将返回仅包含最后一项的列表n。所以在你的情况下:

val beaconAllValues = group.value.takeLast(5)

推荐阅读