You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何对ArrayList的Bike对象按type和color双条件分组统计数量

实现方案

你可以将groupingBy的分组键设置为type和color的组合即可,两种常用实现方式如下:

方案1:用Pair作为分组键(推荐,后续业务处理更灵活)

val combinedCount = list.groupingBy { 
    it.type to it.color
}.eachCount()

返回结果类型为Map<Pair<String?, String?>, Int>,取值时直接用双属性组合匹配即可,例如combinedCount["MOUNTAIN" to "GREEN"]就能拿到对应分组的数量。

方案2:直接生成示例格式的字符串键

如果需要和你给出的示例输出格式完全对齐,可以直接拼接字符串作为分组键:

val combinedCount = list.groupingBy { 
    "${it.type} and ${it.color}"
}.eachCount()

统计结果的键就会是MOUNTAIN and GREEN这类字符串,完全匹配你的示例要求。

可选优化:过滤空值

如果你的业务逻辑不允许type或color为空,可以在分组前先过滤掉空值条目,避免生成无效分组:

val combinedCount = list
    .filter { it.type != null && it.color != null }
    .groupingBy { "${it.type} and ${it.color}" }
    .eachCount()

内容的提问来源于stack exchange,提问作者Ticherhaz FreePalestine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 16:54:01