Kotlin의 MutableList를 초기화하여 MutableList를 비우려면 어떻게해야합니까?


241

너무 간단 해 보이지만 어떻게 Kotlin MutableList을 비우기 위해 초기화 MutableList합니까?

이 방법으로 해킹 할 수는 있지만 사용하기 쉬운 것이 확실합니다.

var pusta: List<Kolory> = emptyList()
var cos: MutableList<Kolory> = pusta.toArrayList()

답변:


436

간단히 쓸 수 있습니다 :

val mutableList = mutableListOf<Kolory>()

이것이 가장 관용적 인 방법입니다.

다른 방법은

val mutableList : MutableList<Kolory> = arrayListOf()

또는

val mutableList : MutableList<Kolory> = ArrayList()

이것은 Java 유형과 같은 컴파일러 ArrayList유형을 MutableList통해 암시 적으로 유형 을 구현 한다는 사실을 이용하고 있습니다 .


아무것도 가져와야합니까? 현재 프로젝트에서 이것을 작성할 때 unresolved reference arrayListOf를 얻습니다. mutableListOf를 시도해도 동일합니다
vextorspace

클래스 패스에 stdlib가 있습니까?
Kirill Rakhman

방금 build.gradle에서 kotlin_version 플래그를 1.1.1 대신 1.1.0으로 다시 전환해야했습니다.
vextorspace

1
그의 @androiddeveloper 때문이 kotlin.collections.List입니다 없습니다 java.utils.List . Kotlin에는 내장 Java 유형을 매핑하는 메커니즘이 있습니다. kotlinlang.org/docs/reference/java-interop.html#mapped-types 및 이와 유사한 SO 질문을 참조하십시오 . 주석 섹션은이를 자세히 설명하기에 적합하지 않습니다.
Kirill Rakhman

1
@Mohanakrrishna 네, 함수는 인수 전달을 지원합니다.
Kirill Rakhman

17

배열 유형의 목록 유형에 따라 다양한 형태 :

val myList = mutableListOf<Kolory>() 
// or more specifically use the helper for a specific list type
val myList = arrayListOf<Kolory>()

LinkedList의 경우 :

val myList = linkedListOf<Kolory>()
// same as
val myList: MutableList<Kolory> = linkedListOf()

다른 목록 유형의 경우 직접 구성하면 Mutable로 가정됩니다.

val myList = ArrayList<Kolory>()
// or
val myList = LinkedList<Kolory>()

이는 List인터페이스를 구현하는 모든 것 (즉, 다른 컬렉션 라이브러리)에 적용됩니다.

목록이 이미 변경 가능한 경우 왼쪽에서 유형을 반복 할 필요가 없습니다. 또는 다음과 같이 읽기 전용으로 취급하려는 경우에만 :

val myList: List<Kolory> = ArrayList()

새 MutableList의 크기를 알고 있으면 어떻게합니까? 예 ArrayList(24)를 들어, ArrayList의 경우 24를 사용할 수 있다고 생각되면 더 이상 필요하지 않을 것입니다.
안드로이드 개발자

@androiddeveloper 목록 생성자에 대한 문서 나 기본 목록에 대한 Java API를 보면 원하는 항목에 대한 옵션이 표시됩니다.
Jayson Minard

에 대해 잊어 버렸습니다 mutableListOf. 올바른 내용은 다음과 같습니다.val myList = arrayListOf<Kolory>() // same as // val myList = mutableListOf<Kolory>()
user924

10

나는 아래를 좋아한다.

var book: MutableList<Books> = mutableListOf()

/ ** 주어진 요소를 가진 새로운 [MutableList]를 반환합니다. * /

public fun <T> mutableListOf(vararg elements: T): MutableList<T>
    = if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.