Kotlin Collection 공식 문서를 정리 한 글입니다. Collection의 transform operator에 대해 알아봅니다.
Github repo 에서 아래에 적힌 Kotlin 코드들을 확인 하실 수 있습니다.
Transform operator
Map
- Item들을 특정 함수를 활용하여 변형 시키고, 그 결과값에 대한 Collection을 반환 해 줌
map()
/mapIndexed()
/mapNotNull()
등의 operation이 존재
1 |
|
- map collection을 변형 시킬 때는, value는 놔둔 채 key를 변형시키는
mapKey()
, 그와 반대로 작동하는mapValues()
가 존재
1 |
|
Zip
- 각각 Collection의 동일한 position에 있는 item들을 결합 ( Pair의 형태 ) 하여 새로운 Collection을 반환
- collection과 collection을 zip으로 엮으면, Pair객체를 반환
1 |
|
- collection 두개를 zip으로 생성한 결과 collection을, 변형 함수를 통해 변형하여 사용 할 수 있다.
- 이때 변형 함수의 인자는 첫번째, 두번째 collection의 item이 들어간다.
1 |
|
- Pair 객체를 element의 type으로 갖는 List는, List와 List의 zip을 통해 만들어 진 것과 같다고 볼 수 있으므로
unzip()
함수를 통해 두개의 List로 분할이 가능하다
1 |
|
Associate
- Collection의 item으로 부터 map 객체를 생성 해 준다.
associateWith()
/associateBy()
등의 함수를 사용
1 |
|
- associateBy 함수를 통해, key / value 값도 조작 가능
1 |
|
- Pair 객체를 리턴하는 lambda 함수를 associate() 함수의 인자로 넣어주어 map collection 생성 사능
1 |
|
Flatten
flatten()
→ 평탄화 작업 operation, 중첩된 collection이 있을 때, 내부 collection의 element들을 외부 collection의 element로 사용 하여 새로운 collection 생성
1 |
|
flatMap()
→ 중첩된 collection 안의 element를 map 함수와 같이 변형시켜 새로운 collection을 생성
1 |
|
String representation
- collection을 읽기 편한 양식으로 만들어 주는 operation
joinToString()
/joinTo()
등을 활용
1 |
|
- separator / prefix / postfix / limit / truncated / transform 등의 값들을 활용하여 custom joinToString 함수를 활용 할 수 있음
1 |
|
출처 : https://kotlinlang.org/docs/collection-transformations.html