본문 바로가기

kotlin

코틀린: 컬렉션과 람다

컬렉션과 람다

어떤 형태의 람다 표현식이 필요한 지 생성

컬렉션은 데이터의 모임 : 배열(Array), 리스트(List), Set

Map 은 수행 되는 것도 있고 안되는 것도 있다.

fun main(args:Array<String>){
    val ar = arrayOf<Int>(20, 30, 17, 22)

    // 일반적인 람다 표현식을 대입
    ar.forEach({n:Int -> println(n)})
    // 매개 변수가 1개 이면 매개변수를 생략하고 it를 사용 가능
    ar.forEach({println(it)})
    // 람다 표현식이 함수의 마지막 매개 변수라면 () 외부에 작성 가능
    ar.forEach{println(it)}

    // forEachIndexed
    // 2개의 매개 변수를 갖고 리턴이 Unit인 람다 표현식을 대입
    // 첫번째 매개 변수는 데이터의 인덱스이고
    // 두번째 매개 변수는 데이터 입니다.

    ar.forEachIndexed { index, i -> println(index * i) }
    
}

1. forEach

컬렉션의 데이터를 순회하면서 함수를 실행

컬렉션의 자료형 1개를 매개 변수로 받고 Unit을 리턴하는 함수가 대입

> 매개 변수가 컬렉션의 데이터를 순서대로 대입 받습니다.

 

{Int -> Unit} 

 

2. all, any, none

람다 표현식을 대입받아서 순회하면서 실행한 후 결과를 Ture 나 False로 리턴

대입 되는 람다는 매개변수가 1 개이고 Boolean 을 리턴하는 형태

 

all 은 모든 데이터가 True로 리턴하면 True 그렇지 않으면 False를 리턴

any 는 데이터 중 한 개 라도 True 를 리턴하면 True 그렇지 않으면 False를 리턴

none 은 모든 데이터가 False로 리턴하면 True 그렇지 않으면 False를 리턴

 

3. count, find

count 는 True를 리턴한 데이터의 개수를 리턴

find 는 True 를 리턴한 첫번째 데이터를 리턴

대입 되는 람다는 매개 변수가 1개이고 Boolean을 리턴하는 형태

 

4. max(), min()

매개 변수 없이 호출해서 가장 큰 데이터와 가장 작은 데이터를 리턴

 

5. maxBy(), minBy()

매개 변수가 1개이고 리턴이 있는 표현식을 대입 받아서 리턴 값이 가장 큰 데이터나 작은 데이터를 리턴

 

6. SumBy()

매개 변수가 1개이고 리턴이 있는 표현식을 대입 받아서 리턴 되는 데이터의 합계를 리턴

 

7. Kotlin은 문자열도 크기 비교가 가능

'kotlin' 카테고리의 다른 글

코틀린 : Collection 과 람다, 정렬  (0) 2020.10.21
코틀린: 컬렉션과 람다  (0) 2020.10.20
코틀린 : Inline 함수  (0) 2020.10.20
코틀린 : 함수형 프로그래밍  (0) 2020.10.20
코틀린 : anonymous class, Companion, Singleton  (0) 2020.10.19