티스토리 뷰

본 포스팅의 내용은 [깡샘의 코틀린 프로그래밍]을 공부하고 작성자가 생각을 정리하기 위해서 작성한 글이므로 더욱 자세한 내용을 알고 싶으신 분은 [깡샘의 코틀린 프로그래밍]을 강력 추천합니다!!


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()는 내림차순으로 정렬하는 함수이다.

 

참고 자료

[깡샘의 코틀린 프로그래밍] 강성윤 지음 <루비페이퍼>

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함