2017-07-04 15 views
2

次のクラスのオブジェクトのリストがあるとします。KotlinでGROUP BYを使用してCOUNT(*)を実行する方法は?

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

私はMap<String, Int>を検索して、その発生数に名前をマッピングしたいと考えています。私は、SQLベースのデータベースで

を照会します:

SELECT name, count(*) FROM Contact; 

は高階関数とKotlinでこれを行うための最善の方法は何ですか?

答えて

10

連絡する場合は、次の操作を行うことができList<Contact>型のものである:

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

numOccurencesMapタイプMap<String, Int>のものであろう。

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

これは私のアプローチの正確なコピーですね。 :( –

関連する問題