Ответы:
Вы можете просто написать:
val mutableList = mutableListOf<Kolory>()
Это самый идиоматический способ.
Альтернативные способы
val mutableList : MutableList<Kolory> = arrayListOf()
или
val mutableList : MutableList<Kolory> = ArrayList()
Это использует тот факт, что java-типы, подобные ArrayList
, неявно реализуют тип с MutableList
помощью трюка с компилятором.
kotlin.collections.List
это не java.utils.List
. Kotlin имеет механизм для отображения некоторых встроенных типов Java. Пожалуйста, обратитесь к kotlinlang.org/docs/reference/java-interop.html#mapped-types и аналогичным вопросам SO. Раздел комментариев не подходит для подробного обсуждения.
Различные формы в зависимости от типа списка, для массива списка:
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()
ArrayList(24)
например, если я думаю, что 24 - хорошее начало для него, то, вероятно, ему не понадобится больше, чем это.
mutableListOf
. Правильнее было бы:val myList = arrayListOf<Kolory>() // same as // val myList = mutableListOf<Kolory>()
Мне нравится ниже, чтобы:
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))