如何在Kotlin中使用GROUP BY进行计数(*)?

如何在Kotlin中使用GROUP BY进行计数(*)?,kotlin,higher-order-functions,Kotlin,Higher Order Functions,假设我有以下类的对象列表 class Contact( val name: String // ... ) 我想检索一个映射,它将一个名称映射到它的出现次数 在基于SQL的数据库上,我将查询: SELECT name, count(*) FROM Contact GROUP BY name; 在具有高阶功能的Kotlin中,执行此操作的最佳方法是什么?如果联系人的类型为List,则可以执行以下操作: val numOccurencesMap = contacts.groupi

假设我有以下类的对象列表

class Contact(
    val name: String
    // ...
)
我想检索一个
映射
,它将一个名称映射到它的出现次数

在基于SQL的数据库上,我将查询:

SELECT name, count(*) FROM Contact GROUP BY name;

在具有高阶功能的Kotlin中,执行此操作的最佳方法是什么?

如果联系人的类型为
List
,则可以执行以下操作:

val numOccurencesMap = contacts.groupingBy { it.name }.eachCount()
numocurencesmap
将属于
Map
类型