코틀린에서는 함수 호출과 인덱스를 사용하여 컬렉션의 원소를 찾거나 다루는 다양한 방법을 제공합니다.
1. 함수 호출로 원소 찾기
- find 함수
find 함수를 사용하여 조건에 맞는 첫 번째 원소를 찾을 수 있습니다. 조건에 맞는 원소가 없을 경우 null을 반환합니다.
val numbers = listOf(1, 2, 3, 4, 5)
val result = numbers.find { it > 3 }
println(result) // 출력: 4
- first 및 last 함수
first와 last 함수를 사용하여 조건에 맞는 첫 번째 또는 마지막 원소를 찾을 수 있습니다. 조건에 맞는 원소가 없을 경우 NoSuchElementException이 발생할 수 있습니다.
val numbers = listOf(1, 2, 3, 4, 5)
val firstResult = numbers.first { it > 3 }
val lastResult = numbers.last { it > 3 }
println(firstResult) // 출력: 4
println(lastResult) // 출력: 5
- filter 함수
filter 함수를 사용하여 조건에 맞는 모든 원소를 찾을 수 있습니다.
val numbers = listOf(1, 2, 3, 4, 5)
val filteredResults = numbers.filter { it % 2 == 0 }
println(filteredResults) // 출력: [2, 4]
2. 인덱스로 원소 찾기
코틀린에서는 리스트의 인덱스를 사용하여 특정 위치에 있는 원소를 찾을 수 있습니다.
val numbers = listOf(10, 20, 30, 40, 50)
// 인덱스로 원소 찾기
val elementAtIndex = numbers[2]
println(elementAtIndex) // 출력: 30
3. getOrElse 함수로 기본값 설정
getOrElse 함수를 사용하여 인덱스로 원소를 찾을 때 인덱스가 범위를 벗어나는 경우 기본값을 반환할 수 있습니다.
val numbers = listOf(10, 20, 30, 40, 50)
// 인덱스로 원소 찾기, 인덱스가 범위를 벗어나면 기본값 사용
val element = numbers.getOrElse(10) { -1 }
println(element) // 출력: -1
4. getOrNull 함수로 널 대신 기본값 반환
getOrNull 함수를 사용하여 인덱스로 원소를 찾을 때 인덱스가 범위를 벗어나는 경우 null 대신 기본값을 반환할 수 있습니다.
val numbers = listOf(10, 20, 30, 40, 50)
// 인덱스로 원소 찾기, 인덱스가 범위를 벗어나면 null 반환
val element = numbers.getOrNull(10) ?: -1
println(element) // 출력: -1
위의 방법들을 통해 함수 호출이나 인덱스를 사용하여 컬렉션에서 원소를 찾고, 필요에 따라 기본값을 설정하거나 예외를 처리할 수 있습니다. 선택한 방법은 상황에 따라 다를 수 있으며, 코드의 안전성과 가독성을 고려하여 선택하는 것이 중요합니다.
With ChatGPT