티스토리 뷰
본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!!
4. 요소 함수
4.1. contains()
- contains() 함수는 컬렉션 타입의 데이터 중 특정 데이터가 있는지를 판단하는 함수이다.
listOf(2, 5, 10, 8).contains(10) // true
listOf(2, 5, 10, 8).contains(7) // false
4. 2. elementAt(), elementAtOrElse(), elementAtOrNull()
elementAt()
- 특정 위치(인덱스)의 데이터를 추출한다.
- 리스트의 범위를 벗어나는 인덱스를 입력하였을 경우, IndexOutOfBoundsException이 발생한다.
val result = listOf(2, 13, 53, 32, 13).elementAt(3) // 32
elementAtOrElse()
- 특정 위치(인덱스)의 데이터를 추출하는 것은 elementAt()과 동일하다.
- 리스트위 범위를 벗어나는 인덱스를 입력하였을 경우 실행시킬 람다함수를 입력할 수 있다.
val result = listOf(2, 13, 53, 32, 13).elementAtOrElse(5, { 0 }) // 0
elementAtOrNull()
- 특정 위치(인덱스)의 데이터를 추출하는 것은 elementAt()과 동일하다.
- 리스트위 범위를 벗어나는 인덱스를 입력하였을 경우 null을 반환한다.
val result = listOf(2, 13, 53, 32, 13).elementAtOrNull(5) // null
4.3. first(), firstOrNull(), last(), lastOrNull()
first(), firstOrNull()
- 람다 함수로 조건을 주고 해당 조건을 만족하는 가장 첫 번째 데이터를 추출한다.
- 해당 조건에 만족하는 데이터가 없는 경우 NoSuchElementException을 발생한다.
- firstOrNull()을 활용하면 해당 조건에 만족하는 데이터가 없는 경우 null을 반환한다.
val myList = listOf(2, 13, 53, 32, 13)
val result1 = myList.first { it > 10} // 13
val result2 = myList.first { it > 60 } // NoSuchElementException
val result3 = myList.firstOrNull { it > 60 } // null
last(), lastOrNull()
- 람다 함수로 조건을 주고 해당 조건을 만족하는 가장 마지막 데이터를 추출한다.
- 해당 조건에 만족하는 데이터가 없는 경우 NoSuchElementException을 발생한다.
- lastOrNull()을 활용하면 해당 조건에 만족하는 데이터가 없는 경우 null을 반환한다.
val result1 = myList.last { it > 10} // 14
val result2 = myList.last { it > 60 } // NoSuchElementException
val result3 = myList.lastOrNull { it > 60 } // null
indexOf(), indexOfFirst(), indexOfLast()
- indexOf() 함수는 매개변수로 받은 데이터가 위치하는 첫 번째 인덱스값을 반환한다. 만약 데이터가 없으면 -1을 반환한다.
- indexOfFirst() 함수는 람다함수 조건에 맞는 데이터 중 첫 번째 인덱스 값을 반환한다.
- indexOfLast() 함수는 람다함수 조건에 맞는 데이터 중 마지막 인덱스 값을 반환한다.
val result1 = myList.indexOf(53) // 2
val result2 = myList.indexOfFirst { it > 30 } //53
val result3 = myList.indexOfLast { it > 30 } //32
5. 정렬 함수
reversed()
- reversed() 함수는 데이터의 순서를 거꾸로 바꿀 때 싸용한다.
listOf(3, 4, 21, 2, 1).reversed() // [1, 2, 21, 4, 3]
sorted(), sortedBy(), sortedDescending(), sortedDescendingBy()
- sorted() 함수는 정렬을 목적으로 사용된다. 현재 컬렉션 타입의 데이터가 오름차순으로 정렬된다.
- sortedBy() 함수는 람다 함수를 실행하고 난 뒤의 값을 기준으로 오름차순으로 정렬된다.
listOf(3, 4, 21, 2, 1).sorted() // [1, 2, 3, 4, 21]
listOf(1, 5, 12).sortedBy { it % 10 } // [1, 12, 5]
- sortedDescending(), sortedDescendingBy()는 내림차순으로 정렬하는 함수이다.
참고 자료
[깡샘의 코틀린 프로그래밍] 강성윤 지음 <루비페이퍼>
반응형
'Programming > 코틀린(Kotlin)' 카테고리의 다른 글
코루틴을 활용하기 전에 익혀야할 개념 (0) | 2021.06.17 |
---|---|
[코틀린] 15. Null 안전성과 예외 처리 (0) | 2021.05.04 |
[코틀린] 14. 컬렉션 타입과 람다 - 2. 필터링 함수, 3. 매핑 함수 (0) | 2021.05.02 |
[코틀린] 14. 컬렉션 타입과 람다 - 1. 집합 연산 함수 (0) | 2021.05.02 |
[코틀린] 코틀린 API의 범위 지정 함수 (0) | 2021.04.26 |
댓글