Как инициализировать Kotlin MutableList для удаления MutableList?
Кажется, так просто, но как я могу инициализировать Kotlin MutableList
для пустого MutableList
?
Я мог бы взломать его таким образом, но я уверен, что есть что-то более доступное:
var pusta: List<Kolory> = emptyList()
var cos: MutableList<Kolory> = pusta.toArrayList()
Ответы
Ответ 1
Вы можете просто написать:
val mutableList = mutableListOf<Kolory>()
Это самый идиоматичный способ.
Альтернативные способы
val mutableList : MutableList<Kolory> = arrayListOf()
или же
val mutableList : MutableList<Kolory> = ArrayList()
Это использует тот факт, что java-типы, такие как ArrayList
, неявно реализуют тип MutableList
помощью трюка с компилятором.
Ответ 2
Различные формы в зависимости от типа List, для Array List:
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()
Ответ 3
Мне нравится ниже:
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))