[Android/Kotlin] [TIL] Kotlin 유용한 함수 !!
내가쓸려고 만드는 Kotlin 유용한 함수 Part :)
Kotlin 공부를 하는데 실력을 늘리기 위해 유용한 함수들을 미리 숙지해보자 :)
###
Collection을 사용할 때 유용한 함수!
sort() , sortDescending()
Collection을 정렬해주는 함수
val listAsc = mutableListOf(1,3,2) listAsc.sort() //오름차순 정렬 val listDesc = mutableListOf(1,3,2) listDesc.sortDescending() //내림차순 정렬
[1,2,3] [3,2,1]
map()
Collection에 사용하는 고차함수이며 각 구성요소들에 대해서 특정 식을 거친 후 새로운 Collection을 반환해준다.
List의 구성요소들을 2배 해주도록 매핑한 모습으로
it
을 통해서val list : List<Int> = listOf(1,2,3) val mapList = list.map{ it * 2 } println(mapList)
forEach(), forEachIndexed()
Collection의 구성요소들을 하나씩 순회가능하다.
만약 Index값을 함께 사용하고싶다면
forEachIndexed()
를 사용하면 된다.val list = List<Char> = listOf('가','나','다') a.forEach{ println(it) } a.forEachIndex{index, c -> println("$index : $c")}
가 나 다 0 : 가 1 : 나 2 : 다
filter()
특정 조건과 일치하는 구성요소만 반환하는 함수이다.
true일 때의 값을 반환한다.
val list = List<Int> = listOf( 1, 2, 3, 4, 5) val filterList = list.filter{ it >= 3 } println(filterList)
[3, 4, 5]
find()
filter()
와 비슷하지만 특정 조건을 최초로 만족하는 구성요소를 반환한다.만약 조건에 맞지 않다면
null
을 반환한다.val list: List<Int> = listOf(1, 2, 3, 4, 5, 6) val findList = a.find { it % 2 == 0 } println(findList) findList = a.findLast { it % 2 == 0 } println(findList)
2 6
any(), all(), none()
Collection의 구성요소들을 검사하며 Boolean값을 반환한다.
any
: 조건에 맞는 요소가 존재하는지 유무all
: 모두 조건과 맞는지none
: 전부 조건과 일치하지 않는지val list: List<Int> = listOf(1, 2, 3, 4, 5, 6) list.any{it % 2 == 0} //true list.all{it % 2 == 0} //false list.none{it < 0} //true
flatMap()
Collection의 구성요소들 각각마다 원하는 형태로 Collection 을 새로 만들고, 이들을 하나의 Collection 으로 Flatten 하여 반환한다.
val list: List<Int> = listOf(1, 2, 3) val flatList = list.flatMap { listOf(it * 3, it * 4) } println(flatList)
[3, 4, 6, 8, 9, 12]
partition()
어떤 원소에 대해 특정 조건을 걸어서, 조건과 일치하는 요소들과 그렇지 않은 요소로 두 Collection 으로 분리한다.
여기서 Pair형태로 분리되게 되고 first는 true인 요소 second는 false인 요소들이 된다.
val list : List<Int> = listOf(1, 2, 3, 4, 5, 6) val partition = list.partition { it % 2 == 0 } println(partition.first) // 조건에 만족하는 요소 println(partition.second) // 조건에 만족하지 않는 요소
[2, 4, 6] [1, 3, 5]
오름차순과 내림차순
sort(), sortDescending()
sort()
: 내림차순sortDescending()
: 오름차순