티스토리 뷰
Kotlin List
- Kotlin에서 리스트는 데이터 요소를 순차적으로 저장하는 컬렉션
- 리스트는 변경 가능하며, 크기가 동적으로 조정될 수 있음
- Kotlin의 리스트는 List와 MutableList 두 가지 인터페이스로 제공
List
- List는 읽기 전용 리스트로, 한 번 생성되면 내용을 변경할 수 없음. 요소를 추가하거나 삭제하는 등의 작업이 불가능
- listOf() 함수를 사용하여 불변 리스트를 생성할 수 있음
val immutableList = listOf("apple", "banana", "orange")
MutableList
- 변경 가능한 리스트로, 요소의 추가, 삭제, 변경 등이 가능
- mutableListOf() 함수를 사용하여 생성할 수 있음
val mutableList = mutableListOf("apple", "banana", "orange")
mutableList.add("grape")
mutableList.removeAt(0)
리스트 요소 접근
- 리스트의 요소에 접근하려면 인덱스를 사용.
- Kotlin의 리스트는 0부터 시작하는 인덱스를 가지며, get() 함수나 대괄호 표기법([])을 사용하여 요소에 접근할 수 있음
val fruit = mutableList[0] // 첫 번째 요소에 접근
확장 함수 예
Filtering(필터링): 리스트에서 특정 조건을 만족하는 요소들만을 선택하는 작업
val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers) // 출력: [2, 4, 6, 8, 10]
Mapping(매핑): 리스트의 각 요소를 다른 값으로 변환하는 작업
val numbers = listOf(1, 2, 3, 4, 5)
val squaredNumbers = numbers.map { it * it }
println(squaredNumbers) // 출력: [1, 4, 9, 16, 25]
Sorting(정렬): 리스트의 요소들을 정렬하는 작업
val numbers = listOf(3, 1, 4, 1, 5, 9, 2, 6)
val sortedNumbers = numbers.sorted()
println(sortedNumbers) // 출력: [1, 1, 2, 3, 4, 5, 6, 9]
Reduce: 리스트의 요소를 결합하여 하나의 값으로 줄이는 연산을 수행, 초기값 필요 X
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.reduce { acc, i -> acc + i }
println(sum) // 출력: 15
Fold: reduce와 동일하게 리스트의 요소를 결합하여 하나의 값으로 줄이는 연산을 수행. 초기값을 반드시 제공. 초기값이 있기 때문에 빈 리스트에 대해서도 동작할 수 있음
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.fold(0) { acc, i -> acc + i } // 초기값 0
println(sum) // 출력: 15
Any/All : 리스트의 요소들 중 하나라도 조건을 만족하는지 혹은 모든 요소가 조건을 만족하는지 검사하는 작업
val numbers = listOf(1, 2, 3, 4, 5)
val anyGreaterThanTen = numbers.any { it > 10 }
val allGreaterThanZero = numbers.all { it > 0 }
println(anyGreaterThanTen) // 출력: false
println(allGreaterThanZero) // 출력: true
'IT > Kotlin' 카테고리의 다른 글
[Kotlin] 확장함수 확장 속성 (0) | 2024.04.15 |
---|---|
[Kotlin] 코틀린 람다 함수 (0) | 2024.04.15 |
[Kotlin] 고차 함수 (0) | 2024.04.12 |
[Kotlin] object 키워드 (0) | 2024.04.12 |
[Kotlin] Sealed class(봉인된 클래스) (0) | 2024.04.08 |