티스토리 뷰

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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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 29 30 31
글 보관함