Listof 와 MutableListOf
val immutableList = listOf("item1", "item2") // 변경 불가능
val mutableList = mutableListOf("item1", "item2") // 변경 가능
listOf는 Immutable(불변성)이기에 변경 불가능한 목록을 생성한다.
mutableListof는 Mutable이기에 변경 가능한 목록을 생성하며 항목 추가/제거와 같은 수정을 허용한다.
인덱싱
인덱스는 컬렉션 내 요소의 위치를 나타내는 숫자 값이다. 인덱싱을 사용하면 목록이나 배열과 같은 컬렉션 내의 요소에 효율적으로 액세스, 수정 또는 제거 할 수 있다. 천번째 요소는 0부터 시작하며 마지막 인덱스는 size of the collection - 1이다.
또한 일반 리스트는 변경할 수 없으므로 변경 가능한 mutableList를 사용하여 내용을 수정한다.
val mutableList = mutableListOf(”apple”, “banna”, “cherry”)
mutableList.add(”watermelon”) // 목록의 제일 끝에 추가됨
mutableList.remove("banna") // "banna" 삭제
mutableList.removeAt(0) // 0번 인덱스인 apple 삭제
MutableList[2] = "blueberry" // 2번 인덱스 cherry -> blueberry로 변경
set 메소드
Kotlin의 메소드 set은 변경 가능한 목록과 함께 사용되어 특정 위치나 인덱스 항목을 대체한다.
set 메소드에는 항목을 교체해야 하는 인덱스와 새 값이라는 두 가지의 매개 변수가 필요하다.
mutableList.set(index, element) // index 위치의 값을 element로 교체함
val mutableList = mutableListOf("apple", "banna", "cherry")
mutableList.set(1, "blueberry") // 1번 인덱스의 값을 "blueberry"로 교체함
// apple, blueberry, cherry
removeLast() 메소드
이 removeLast() 메소드는 마지막 요소를 제거하여 원래 컬렉션을 수정하고 제거된 요소를 반환한다.
메소드가 호출되었을때 컬렉션이 비어있는 경우 NoSuchElementException을 반환한다.
val numbers = mutableListOf(1,2,3,4,5)
val removeNumber = numbers.removeLast()
println(numbers) // [1, 2, 3, 4]
println(removeNumber) // 5
contains() 메소드
Kotlin의 메소드 contains()는 목록, 세트, 지도와 같은 컬렉션 내에 특정 요소가 있는지 확인하는 데 사용된다. 이 메소드는 요소가 있을 경우 true, 없을 경우 false를 반환한다.
val fruits = listOf("apple", "banana", "cherry")
val isBanana = fruits.contains("banana")
println(isBanana) // true
For 반복문
코틀린에서는 다음과 같이 반복문을 사용한다.
간단한 for 루프는 한 번에 하나씩 항목 목록을 살펴보고 각 항목에 대해 작업을 수행한다.
for (fruit in listOf("apple", "banana", "cherry")){
println(fruit)
}
// apple
// banana
// cherry
For 루프에서 인덱스 사용
위치 번호를 기준으로 항목을 반복하여 위치 번호와 해당 위치에 있는 항목을 모두 얻을 수도 있다.
val fruits = list Of("apple", "banana", "cherry")
for ((index, fruit) in fruits.withIndex()){
println("${fruit} 인덱스는 ${index} 입니다.")
}
// apple 인덱스는 0 입니다.
// banana 인덱스는 1 입니다.
// cherry 인덱스는 2 입니다.
'Kotlin' 카테고리의 다른 글
Kotlin의 Type-safe Builder와 DSL-Compose의 예시로 이해하기 (1) | 2024.12.03 |
---|---|
[Kotlin] 코틀린 기초 4 - Jetpack Compose와 기본적인 UI (0) | 2024.04.04 |
[Kotlin] 코틀린 기초 2 - 코드를 간결하게 만드는 방법 feat.함수, 클래스, 객체, 객체지향 (1) | 2024.03.23 |
[Kotlin] 코틀린 기초 1 - 변수, 자료형, in/when 키워드 (1) | 2024.03.22 |