kotlin Listの要素をグループ化する

kotlinで、Listの要素をグループ化する手順を記述してます。
環境
- OS windows11 home
- java 17.0.2
- kotlin 1.6.10-release-923
手順
Listの要素をグループ化するには、「groupBy」で可能です。
List名.groupBy({ 条件 })
実際に、使用して文字数でグループ化してみます。
fun main() {
val list = listOf("java","js","html","php","vba")
println(list.groupBy({ it.length }))
// {4=[java, html], 2=[js], 3=[php, vba]}
println(list) // [java, js, html, php, vba]
}
文字数によりグループ化されていることが確認できます。
条件を指定してグループ化することも可能です。例えば、先頭の文字が同じものを大文字化してグループにすることや、
fun main() {
val list = listOf("java","js","html","php","vba","python")
println(list.groupBy({ it.first() },{ it.toUpperCase() }))
// {j=[4, 2], h=[4], p=[3, 6], v=[3]}
println(list) // [java, js, html, php, vba, python]
}
数値を偶数・奇数でグループ化したりすることも可能です。
fun main() {
val list = listOf(11, 22, 33, 44, 55, 66)
println(list.groupBy({ if (it % 2 == 0) "偶数" else "奇数" }, { it }))
// {奇数=[11, 33, 55], 偶数=[22, 44, 66]}
println(list) // [10, 20, 30, 40, 50, 60]
}
mutableList
「mutableList」にも使用可能です。
fun main() {
val list = mutableListOf(11, 22, 33, 44, 55, 66)
println(list.groupBy({ if (it % 2 == 0) "偶数" else "奇数" }, { it }))
// {奇数=[11, 33, 55], 偶数=[22, 44, 66]}
println(list) // [10, 20, 30, 40, 50, 60]
}
-
前の記事
javascript エラー「RangeError: String.prototype.repeat argument must be greater than or equal to 0 and not be Infinity」の解決方法 2022.04.08
-
次の記事
MySQL リソースグループ情報を取得する 2022.04.08
コメントを書く