Відповіді:
Ви можете просто написати:
val mutableList = mutableListOf<Kolory>()
Це самий ідіоматичний спосіб.
Альтернативні шляхи є
val mutableList : MutableList<Kolory> = arrayListOf()
або
val mutableList : MutableList<Kolory> = ArrayList()
Це використовує той факт, що такі типи java ArrayList
неявно реалізують тип MutableList
за допомогою трюку компілятора.
kotlin.collections.List
це не так java.utils.List
. У Котліна є механізм відображення деяких вбудованих типів 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()
Для інших типів списку буде вважатися змінним, якщо ви побудуєте їх безпосередньо:
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))