코틀린 언어 정리 4-2

Collection operations

여기서는 Collection에서 제공하는 연산 중 Transformations(Mapping, Zipping, Association, Flattening, String representation), Filtering(Filtering by predicate, Partitioning, Testing predicates) , Plus and Minus Operators( +/- ), Grouping(groupBy, groupingBy 및 aggregate 함수들) 에 대해 확인해 보겠습니다.

각 분류의 연산들을 확인하기 전에 전반적으로 자주 사용되는 연산들의 코드 예제를 간단하게 확인하면 감각을 익히는데 도움이 될 것 같습니다.


자주 사용하는 연산들

filter

collection의 값을 조건에 의해 걸러내어 새로운 collection을 생성합니다.


예제

listOf ( 0, 1, 2, 3, 4, 5 ).filter ( { it-> it > 2 } )


결과: 3, 4, 5


fun < T > Iterable < T >.filter ( predicate:( T )->Boolean ):List< T >


map

collection의 각각의 값에 연산을 적용하여 새로운 collection을 생성합니다.

예제

listOf(0, 1, 2, 3, 4, 5).filter { it -> it > 2 }.map { num: num * num }


결과: 9, 16, 25


fun < T, R > map ( transform: ( T )->R ):List< R >


filter와 map의 연계 예제

예제

//fun main(args: Array<String>) {

fun test () {

   val list = ( 0..10 ).filter { it % 2 == 0 }.map { println ( "it는 홀수 입니다." ); it }

   println ( list )

}


기타 이름으로 동작을 추측하기 쉬운 다양한 연산들

forEach, forEachIndexed

all, any

count, find

reduce, reduceRight, fold, foldRight

max, maxBy, min, minBy

filterNot, filterNotNull

drop, dropWhile, dropLastWhile

slice, take, takeLast, takeWhile

mapIndexed

groupBy

contains

first, firstOrNull, last, lastOrNull

indexOf, indexOfFirst, indexOfLast

reversed

sorted, sortedBy, sortedDescending, sortedDescendingBy



+ Recent posts