如何在Kotlin中使用GROUP BY执行COUNT(*)?

假设我有一个下列类的对象列表。

class Contact( val name: String // ... ) 

我想检索一个映射名称到它的次数的映射Map<String, Int>

在一个基于SQL的数据库,我会查询:

 SELECT name, count(*) FROM Contact; 

在Kotlin中使用更高阶函数的最好方法是什么?

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

 val numOccurencesMap = contacts.groupingBy { it.name }.eachCount() 

numOccurencesMap将是Map<String, Int>

  val contacts = ArrayList<Contact>() val occurences: Map<String, Int> occurences = contacts.groupingBy { it.name }.eachCount()