-
Kotlin 기초 (2) - Collection & 표준함수Kotlin 2021. 3. 18. 11:36반응형
List
- list 는 변경이 불가능한 방식 ( listOf() )
- 배열 위치에 직접적인 값 대입이 불가능 ( ex : list[0] = 10 )
- get() 없이 대괄호로 접근 가능
- MutablList ,ArrayList 를 사용할경우 변경 가능 ( mutbleListOf() , arrayListOf() )
Set
- 중복을 허용하지 않음
- 순차적이지 않음
- Set 은 변경 불가 ( setOf() )
- MutableSet , HashSet ,LinkedHashSet , TreeSet
- add() , remove()
- HashSet 은 HashCode 값 순서로 검색됨
Map
- key ,value 구성
- 순차적이지 않음, 키만 중복이 불가능
- mapOf( "key1" to 1 , "key2", 2 ) / mapOf( Pair("key1" , 1 ) , Pari( "key2", 2 ) )
- MutableMap<K,V> ,HashMap<K,V> , LinkedHashMap<K,V>,SortedMap<K,V>
- put() ,set() , remove()
Sequence
- 큰 데이터를 연산할때 좋음
- 중간에 리스트를 생성하지 않기 때문에 filter 보다 효과정
- 시퀀스는 중간연산에서는 아무것도 실행되지 않음 , 최종 호출될때 실행됨
- map , filter 순서에 따라 성능이 달라짐
1) map -> filter : map 에서 모든 원소를 iteration
2) filter -> map : filter 에서 조건에 만족하는값만 iteration
- User Defined Sequence 가 가능 함.
Apply , Let
- 둘다 구성시 반복을 줄이는데 목적
- 차이점
- Apply 는 대체만 하고 let 은 전달 한다
- let 은 호출된 객체의 참조만을 인자로 받기 때문에 it 키워드 사용 가능
- Apply는 람다 실행이 끝나면 객체를 반환하고 let 은 람다의 마지막 코드의 실행 결과를 반환한다
run
- apply 와 유사. 단 객체를 반환하지 않음
also
- let 와 유사 , 다른점은 결과가 아닌 객체를 반환
takeIf , takeUnless
- takeIf는 람다 조건식을 실행한 후 true면 받은 객체가 반환되고 false면 null이 반환
- takeUnless는 조건식을 실행한 후 false면 받은 객체가 반환되고 true면 null이 반환
반응형'Kotlin' 카테고리의 다른 글
코틀린 vs Java (0) 2021.07.12 Kotlin Coroutine 사용하기 (0) 2021.05.13 Kotlin 기초 문법 예제 (0) 2021.03.17