Как сохранить операцию subList в ArrayList в другом ArrayList в Kotlin? - PullRequest
0 голосов
/ 02 августа 2020

Я использую Kotlin REPL в IntelliJ Idea



У меня ArrayList.

val myArrayList: ArrayList<String?> = arrayListOf("pig", null, "cow", "chicken", "chicken", "duck", "turkey", "pig", null, null, "turkey", "pig")



операция

myArrayList.subList(2, 3)

дает мне результат:

res5: kotlin.collections.MutableList<kotlin.String?> = [cow]



Но операция

val myArraySubList: ArrayList<String?> = myArrayList.subList(2, 3)

дает мне ошибку:

error: type mismatch: inferred type is MutableList<String?> but kotlin.collections.ArrayList<String?> /* = java.util.ArrayList<String?> */ was expected
val myArraySubList: ArrayList<String?> = myArrayList.subList(2, 3)
                                         ^



Итак, вот как могу ли я сохранить результат операции subList на ArrayList в другом ArrayList?

1 Ответ

2 голосов
/ 02 августа 2020
ArrayList(myArrayList.subList(2, 3))

с использованием этого конструктора:

<init>(elements: Collection<E>)

Создает ArrayList, заполненный из коллекции элементов.

Но подумайте, можете ли вы это действительно нужно: явно использовать ArrayList вместо MutableList очень редко.

...