Kotlin

[Kotlin] 코틀린 기초 3 - listOf와 mutableListOf

도우 2024. 4. 1. 20:10
728x90

 

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 입니다.

 

728x90