Kotlin에서 ArrayList에 항목을 추가하는 방법은 무엇입니까?


답변:


98

에서 방금 마이그레이션하는 사람들을 위해 javaIn Kotlin List은 기본적으로 변경 불가능하며 변경 가능한 버전의 목록이 호출 MutableList됩니다.

따라서 다음과 같은 것이 있다면 :

val list: List<String> = ArrayList()

이 경우 add()목록은 변경할 수 없으므로 메서드를 얻지 못합니다 . 따라서 MutableList아래와 같이 선언해야 합니다.

val list: MutableList<String> = ArrayList()

이제 add()메서드 가 표시 되고 모든 목록에 요소를 추가 할 수 있습니다.


5
감사합니다! 나는 ... 배열에서 해당 더하기 방법을 통해 내 머리를 두드리는 있었어요
dasfima

1
좋아, 내가 찾던 바로 그것. 감사합니다.
Sam Chen

77

MUTABLE 컬렉션 이있는 경우 :

val list = mutableListOf(1, 2, 3)
list += 4

IMMUTABLE 컬렉션 이있는 경우 :

var list = listOf(1, 2, 3)
list += 4

val객체는 항상 동일하지만 내용이 변경된다는 점을 강조하기 위해 변경 가능한 목록에 사용 합니다.

불변 목록의 경우, 그것을 만들어야합니다 var. +=연산자는 추가 값을 사용하여 새 개체를 만듭니다 .


7
일을 +=비 변경 가능한 목록에서 새로운 변경 가능한 목록에서 목록의 모든 요소를 복사 한 다음 실제 목록에 재 할당해야합니다. 귀하의 목록을로 선언하는 것이 적합한 지 몰랐습니다 var. 어쨌든 목록을 var로 선언하는 것은 나에게 좋은 생각이 아닙니다.
crgarridos

1
목록이 변경 불가능한 경우으로 선언하는 것 외에 다른 옵션이 없습니다 var. 불변 목록이으로 선언 val되면 목록은 변경 될 수 없습니다. 다른 변수에 다시 할당하는 것이 가능할 것입니다.
guenhter

1
정확히, 내 변수의 참조를 변경하는 것을 허용하고 싶지 않습니다. 외부 / 동시성 작업에 부작용이있을 수 있습니다. 논리를 추출하기 위해 복사본을 만드는 것이 좋습니다. 그러나 이것은 질문의 범위를 벗어납니다.
crgarridos

24

특별히 java ArrayList를 사용하려면 다음과 같이 할 수 있습니다.

fun initList(){
    val list: ArrayList<String> = ArrayList()
    list.add("text")
    println(list)
}

그렇지 않으면 @guenhter 대답이 당신이 찾고있는 대답입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.