Kotlin에서 목록을 초기화하기 위한 궁극의 가이드
Kotlin List<T>
는 여러 요소의 모음을 나타냅니다. 구문에서 <T>
는 정의되지 않은 데이터 유형을 나타냅니다. 이는 List<T>
를 사용하여 초기화된 목록에 특정 데이터 유형이 없음을 의미합니다.
Collections
클래스의 미리 정의된 기능을 사용하여 원할 때마다 List
의 항목에 쉽게 액세스하고 수정할 수 있습니다.
Kotlin에서는 변경할 수 없는 목록과 변경할 수 있는 두 가지 유형의 목록을 초기화할 수 있습니다. 이러한 목록을 초기화하는 방법에는 여러 가지가 있으며 이 문서에서 살펴보겠습니다.
Kotlin에서 불변 목록 초기화
변경할 수 없는 목록은 일단 생성되면 변경할 수 없는 컬렉션입니다. 이들은 List
인터페이스를 사용하여 정의되며 List
및 ArrayList
와 같은 List
구현 클래스로 표시됩니다.
불변 목록을 초기화하는 세 가지 방법에 대해 알아봅니다. 이 세 가지 방법에는 다음이 포함됩니다.
listOf()
빈 목록()
listOfNull()
listOf()
함수로 Kotlin 목록 초기화
listOf()
는 Collections
클래스의 최상위 함수입니다. 이 메서드는 변경할 수 없는 항목 목록을 만듭니다. Java에서 Arrays.asList
를 사용하는 것과 유사합니다.
다음 구문을 사용하여 변경 불가능한 Kotlin 목록을 초기화할 수 있습니다.
val listName = listOf(item1, item2, item3)
이제 위 구문을 사용하여 간단한 Kotlin 프로그램을 만들어 보겠습니다. 이 프로그램에서는 Fruits
라는 변경 불가능한 Kotlin 목록
을 만들고 몇 가지 과일을 추가합니다.
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
}
이것은 불변 목록입니다. 따라서 미리 정의된 방법을 사용하여 목록을 변경하면 오류가 발생합니다.
add()
함수를 사용하여 이전 예제에서 정의한 동일한 불변 목록에 요소를 추가하려고 시도하여 이를 실제로 확인합니다.
fun main(args: Array<String>) {
val Fruits = listOf("Apple", "Mango", "Strawberry")
println(Fruits)
Fruits.add("Kiwi")
println(Fruits)
}
출력에서 볼 수 있듯이 add()
메서드는 unresolved reference: add
오류를 발생시킵니다.
emptyList()
함수로 Kotlin 목록 초기화
변경할 수 없는 Kotlin 목록
을 만드는 다음 방법은 emptyList()
함수를 사용하는 것입니다. listOf()
함수와 유사하게 작동하지만 유일한 차이점은 빈 목록을 생성한다는 것입니다.
즉, 목록을 생성하지만 목록이 비어 있으므로 초기화하지 않습니다.
emptyList()
함수를 사용하는 구문은 다음과 같습니다.
val listName: List<String/Int> = emptyList()
다음은 emptyList()
를 사용하여 Kotlin에서 변경할 수 없는 빈 목록을 만드는 프로그램입니다.
fun main() {
val emptyImmutableList: List<String> = emptyList()
println(emptyImmutableList)
}
listOfNotNull()
함수로 Kotlin 목록 초기화
listOfNotNull()
함수는 null
이 없는 기존 컬렉션에서 새 목록을 반환합니다.
일부 String
값과 일부 null
값이 포함된 목록이 있는 경우 이 메서드는 String
값만 포함된 새 목록을 제공합니다. 그러나 목록에 null
값만 있는 경우 함수는 빈 목록을 반환합니다.
결과 목록은 읽기 전용입니다. 따라서 listOfNotNull()
함수는 변경 불가능한 Kotlin 목록을 초기화하는 역할을 합니다.
다음은 listOfNotNull()
함수의 구문입니다.
fun <T : Any> listOfNotNull(element: T?): List<T>
아래 프로그램에서는 세 개의 목록을 만듭니다. 하나는 null
값만 포함하고, 두 번째는 null이 아닌
값만 포함하며, 세 번째는 null
과 null이 아닌
값이 혼합되어 있습니다.
fun main(args: Array<String>) {
val nullValuesList = listOfNotNull(null, null)
println(nullValuesList)
val nonNullValuesList = listOfNotNull(13, "Hello", "Hi", 96)
println(nonNullValuesList)
val mixList = listOfNotNull(13, null, "Hello", null, 96)
println(mixList)
}
첫 번째 println()
함수는 첫 번째 목록인 nullValuesList
에 두 개의 null
값만 있기 때문에 빈 목록을 생성합니다. 두 번째 println()
함수는 두 번째 목록 nonNullValuesList
의 모든 요소를 인쇄합니다. 왜냐하면 non-null
값만 있기 때문입니다.
그러나 세 번째 println()
함수는 mixList
에서 null이 아닌
값만 포함하는 목록을 인쇄합니다.
Kotlin에서 가변 목록 초기화
변경 가능한 목록은 필요할 때 액세스하고 변경할 수 있는 변경 가능한 컬렉션입니다. 이 섹션에서는 Kotlin 목록을 초기화하는 두 가지 방법을 살펴봅니다.
우리가 진행할 두 가지 방법은 다음과 같습니다.
mutableListOf()
arrayListOf()
mutableListOf()
함수로 Kotlin 목록 초기화
변경 가능한 Kotlin 목록을 초기화하는 첫 번째 방법은 mutableListOf()
메서드를 사용하는 것입니다. listOf()
함수와 마찬가지로 mutableListOf()
도 Kotlin List
를 생성하고 초기화할 수 있습니다.
그러나 이 함수는 가변 목록을 생성하므로 이 목록에서 요소를 추가하거나 삭제할 수 있습니다.
mutableListOf()
구문은 다음과 같습니다.
var listName = mutableListOf(item1, item2, item3)
Fruits
라는 변경 가능한 목록을 만들고 초기화하기 위해 아래 Kotlin 프로그램을 만듭니다. 다음으로 목록에 새 요소를 추가하고 다른 항목을 제거합니다.
fun main(args: Array<String>) {
var Fruits = mutableListOf("Apple", "Mango", "Strawberry")
println(Fruits)
// Adding a new element to the list
Fruits.add("Kiwi")
println(Fruits)
// Removing an element from the list
Fruits.remove("Mango")
println(Fruits)
}
출력에서 볼 수 있듯이 이번에는 add()
함수가 unresolved reference
오류를 발생시키지 않습니다. 우리가 만든 목록이 변경 가능하기 때문입니다.
arrayListOf()
함수로 Kotlin 목록 초기화
변경 가능한 Kotlin 목록
을 초기화하는 다른 방법은 arrayListOf()
함수를 사용하는 것입니다. 이 메서드는 배열을 만들고 초기화합니다.
arrayListOf()
함수의 구문은 다음과 같습니다.
var listName = arrayListOf(item1, item2, item3)
위의 구문을 사용하여 Cars
라는 변경 가능한 Kotlin ArrayList
를 생성하고 몇 가지 자동차 브랜드로 초기화합니다. 그런 다음 ArrayList
에 새 요소를 추가하여 변경 가능함을 확인합니다.
fun main(args: Array<String>) {
var Cars = arrayListOf("Mercedes Benz", "BMW", "Bentley")
println(Cars)
Cars += listOf("Ferrari", "Lamborghini")
println(Cars)
}
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn