조합 및 합계
zip() 함수는 두 컬렉션 내의 자료를 조합하여 새로운 자료를 만들 때 사용한다. 두 컬렉션 간 자료의 개수는 달라도 문제 없으며, 다르다면 조합에 사용하는 컬렉션 중 더 적은 쪽을 따라간다. 기본적으로는 Pair의 형태로 자료를 조합하고, 원하는 경우 조합 규칙을 지정할 수 있다.
val cityCodes = listOf("SEO", "TOK", "MTV", "NYC")
val cityNames = listOf("Seoul", "Tokyo", "Mountain View")
cityCode.zip(cityNames)
.forEach{pair ->
println("${pair.first}:${pair.second}")
}
//SEO:Seoul
//TOK:Tokyo
//MTV:Mountain View
cityCode.zip(cityNames) {code, name -> "$code ($name)"}
.forEach{println(it)}
//SEO (Seoul)
//TOK (Tokyo)
//MTV (Mountain View)
joinToString() 함수는 컬렉션 내 자료를 문자열 형태로 변환함과 동시에, 이를 조합하여 하나의 문자열로 생성한다.
val cities = listOf("Seoul", "Tokyo", "Mountain View", "NYC", "Singapore")
println(cities.joinToString())
//Seoul, Tokyo, Mountain View, NYC, Singapore
println(cities.joinToString(seperator="|"))
//Seoul|Tokyo|Mountain View|NYC|Singapore
count() 함수는 컬렉션 내 포함된 자료의 개수를 반환한다. 이는 size로 대체할 수 있지만, count에 조건을 걸어 특정 조건에 해당 하는 요소의 수만 반환하도록 할 수 있다.
val cities = listOf("Seoul", "Tokyo", "Mountain View", "NYC", "Singapore")
println(cities.count())
//5
println(cities.count{city -> city.length > 5})
//2
기타
any() 함수는 컬렉션 내에 해당하는 자료가 존재하면 true, 그렇지 않다면 false를 반환한다.
none() 함수는 컬렉션 내에 조건에 만족하는 자료가 존재하지 않다면 true, 그렇지 않다면 false를 반환한다.
val cities = listOf("Seoul", "Tokyo", "Mountain View", "NYC", "Singapore")
print(cities.any{city -> city.length <=5 })
//true
print(cities.none{city -> city.isEmpty()})
//true
max() 함수는 컬렉션 내의 최대값을 반환한다.
min() 함수는 컬렉션 내의 최소값을 반환한다.
average() 함수는 평균을 반환한다.
val numbers = listOf(1,2,3,4,5)
println(numbers.max())
//5
println(numbers.min())
//1
println(numbers.average())
//3
'안드로이드 > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 공식 문서 - Coroutines basics (0) | 2021.06.26 |
---|---|
[Kotlin] 코틀린 공식 문서 - Coroutines Guide, Asynchronous programming Techniques (0) | 2021.06.26 |
[Kotlin] 스트림 함수(확장 함수) - map, filter (0) | 2020.12.21 |
[Kotlin] 컬렉션(Collections) (3) | 2020.12.21 |
[Kotlin] 위임(Delegation)과 초기화 지연(lazy initialization) (0) | 2020.12.20 |