Kotlin에서 빈 변경 가능한 목록 만들기
-
Kotlin에서
mutableListOf()
메소드 사용 -
Kotlin에서
arrayListOf()
메소드 사용 - Kotlin에서 데이터 구조 생성자 사용
- Kotlin에서 암시적 선언 사용
- 결론
예제로 들어가기 전에 List
유형의 데이터로 작업할 때 두 가지 일반적인 용어를 이해해야 합니다.
용어에는 가변 및 불변이 포함됩니다. 변경 가능한 목록은 데이터 구조에서 요소를 추가하거나 제거하여 수정할 수 있는 목록입니다.
불변 목록은 데이터 구조에서 요소를 추가하거나 제거하여 수정할 수 없는 목록입니다.
두 용어에서 List
와 MutableList
를 포함하는 두 가지 유형의 목록을 가질 수 있습니다. MutableList
는 List
인터페이스에서 상속되기 때문에 목록입니다.
MutableList
유형은 수정할 수 있는 목록을 반환하고 List
유형은 수정할 수 없는 목록을 반환합니다. 그러나 목록이 변경 가능한지 변경할 수 없는지 여부를 지정하지 않고 List
의 구현을 생성하면 기본적으로 변경 가능한 것으로 간주됩니다.
이 튜토리얼에서는 변경 가능한 빈 목록을 만드는 방법을 알려줍니다. 빈 목록은 데이터 구조에 요소가 없음을 의미합니다.
Kotlin에서 mutableListOf()
메소드 사용
IntelliJ
로 이동하여 새 Kotlin 프로젝트를 만듭니다. kotlin
폴더 아래 Main.kt
라는 새 Kotlin 파일을 만듭니다.
다음 코드를 복사하여 파일에 붙여넣습니다.
val mutableEmptyList: MutableList<String> = mutableListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
mutableListOf()
메소드는 MutableList
유형의 빈 목록을 반환합니다. 즉, 데이터 구조에서 요소를 추가 및 제거할 수 있습니다. 이를 확인하기 위해 반환된 객체에서 add()
또는 remove()
메서드를 호출할 수 있습니다.
위의 코드를 실행하고 isEmpty()
메서드는 아래와 같이 요소가 추가되기 전에 true
를 반환하고 요소가 추가된 후에는 false
를 반환합니다.
true
false
Kotlin에서 arrayListOf()
메소드 사용
이전 예제에 주석을 달고 다음 코드를 Main.kt
파일에 붙여넣습니다.
val mutableEmptyList: MutableList<String> = arrayListOf();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
arrayListOf()
메서드는 빈 ArrayList
를 반환하지만 이전 예에서는 MutableList
를 반환합니다. 이것이 어떻게 가능한지?
소개 섹션에서 MutableList
는 List
인터페이스에서 상속되기 때문에 List
라고 언급했습니다. ArrayList
는 List
인터페이스를 구현하므로 ArrayList
를 사용하여 MutableList
를 반환할 수 있습니다.
변경 가능한 목록에 액세스하면 isEmpty()
메서드를 호출하여 메서드가 비어 있는지 확인할 수 있습니다. 위의 코드를 실행하고 출력이 아래와 같은지 확인하십시오.
true
false
Kotlin에서 데이터 구조 생성자 사용
이전 예제에 주석을 달고 다음 코드를 Main.kt
파일에 붙여넣습니다.
import java.util.LinkedList
val mutableEmptyList: MutableList<String> = LinkedList();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
LinkedList
클래스는 LinkedList
유형의 MutableList
를 반환하는 데 도움이 되는 List
인터페이스를 구현합니다.
LinkedList()
생성자는 빈 목록을 반환하고 List
인터페이스를 구현하는 다른 데이터 구조의 생성자에 적용됩니다.
위의 예를 실행하고 출력이 다른 예와 동일하게 인쇄된다는 점에 유의하십시오. 출력은 아래와 같습니다.
true
false
Kotlin에서 암시적 선언 사용
이전 예제에 주석을 달고 다음 코드를 Main.kt
파일에 붙여넣습니다.
val mutableEmptyList = ArrayList<String>();
fun main() {
println(mutableEmptyList.isEmpty());
mutableEmptyList.add("I am the first element !")
println(mutableEmptyList.isEmpty());
}
이전 예제에서 언급했듯이 MutableList
인 원하는 반환 유형을 직접 지정했습니다. 소개 섹션에서 읽기 전용 목록을 원하는지 여부를 지정하지 않으면 모든 목록 구현이 변경 가능한 것으로 가정한다고 언급했습니다.
이 예는 반환 유형을 나타내지 않고 List
구현을 정의하여 MutableList
가 암시적으로 반환되는 방법을 보여줍니다.
위의 코드를 실행하고 AbstractCollection
클래스에서 상속된 isEmpty()
메서드는 요소가 추가되기 전에 true
를 반환하고 요소가 추가된 후에는 false
를 반환합니다. 출력은 아래와 같습니다.
true
false
결론
이 튜토리얼에서는 mutableListOf()
메소드 사용, arrayListOf()
메소드 사용, 데이터 구조 생성자 사용 및 암시적 선언 방식.
David is a back end developer with a major in computer science. He loves to solve problems using technology, learning new things, and making new friends. David is currently a technical writer who enjoys making hard concepts easier for other developers to understand and his work has been published on multiple sites.
LinkedIn GitHub