Slide 25
Slide 25 text
#ooc_2024
stream, filter, map を多用した Object 整形文例
val people = listOf(
Person("Alice", 25, listOf(Skill("Kotlin", 3), Skill("Java", 4))),
Person("Bob", 30, listOf(Skill("Kotlin", 4), Skill("Python", 3))),
Person("Charlie", 20, listOf(Skill("Java", 2), Skill("JavaScript", 3)))
// 以降も続く・・・
)
val targetLanguage = "Kotlin"
val minSkillLevel = 4
val result = people.stream()
.filter { person ->
person.skills.any {
it.language == targetLanguage && it.level >= minSkillLevel
}
}
.map { it.name }
.toList()
期待値が分かりにくいので
理解容易性を推奨
25