Kotlin에서 빈 변경 가능한 목록 만들기

David Mbochi Njonge 2023년1월30일
  1. Kotlin에서 mutableListOf() 메소드 사용
  2. Kotlin에서 arrayListOf() 메소드 사용
  3. Kotlin에서 데이터 구조 생성자 사용
  4. Kotlin에서 암시적 선언 사용
  5. 결론
Kotlin에서 빈 변경 가능한 목록 만들기

예제로 들어가기 전에 List 유형의 데이터로 작업할 때 두 가지 일반적인 용어를 이해해야 합니다.

용어에는 가변 및 불변이 포함됩니다. 변경 가능한 목록은 데이터 구조에서 요소를 추가하거나 제거하여 수정할 수 있는 목록입니다.

불변 목록은 데이터 구조에서 요소를 추가하거나 제거하여 수정할 수 없는 목록입니다.

두 용어에서 ListMutableList를 포함하는 두 가지 유형의 목록을 가질 수 있습니다. MutableListList 인터페이스에서 상속되기 때문에 목록입니다.

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를 반환합니다. 이것이 어떻게 가능한지?

소개 섹션에서 MutableListList 인터페이스에서 상속되기 때문에 List라고 언급했습니다. ArrayListList 인터페이스를 구현하므로 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 Mbochi Njonge avatar David Mbochi Njonge avatar

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