Câu trả lời:
Bạn chỉ có thể viết:
val mutableList = mutableListOf<Kolory>()
Đây là cách thành ngữ nhất.
Cách khác là
val mutableList : MutableList<Kolory> = arrayListOf()
hoặc là
val mutableList : MutableList<Kolory> = ArrayList()
Điều này đang khai thác thực tế là các loại java như ArrayList
đang ngầm thực hiện loại MutableList
thông qua một thủ thuật biên dịch.
kotlin.collections.List
là không java.utils.List
. Kotlin có một cơ chế để ánh xạ một số loại java tích hợp. Vui lòng tham khảo kotlinlang.org/docs/reference/java-interop.html#mapped-types và các câu hỏi SO tương tự. Phần bình luận không thích hợp để thảo luận chi tiết về vấn đề này.
Các hình thức khác nhau tùy thuộc vào loại Danh sách, cho Danh sách Mảng:
val myList = mutableListOf<Kolory>()
// or more specifically use the helper for a specific list type
val myList = arrayListOf<Kolory>()
Đối với LinkedList:
val myList = linkedListOf<Kolory>()
// same as
val myList: MutableList<Kolory> = linkedListOf()
Đối với các loại danh sách khác, sẽ được giả sử Mutable nếu bạn xây dựng chúng trực tiếp:
val myList = ArrayList<Kolory>()
// or
val myList = LinkedList<Kolory>()
Điều này đúng cho bất cứ điều gì thực hiện List
giao diện (tức là các thư viện bộ sưu tập khác).
Không cần lặp lại kiểu ở phía bên trái nếu danh sách đã có Mutable. Hoặc chỉ khi bạn muốn coi chúng là chỉ đọc, ví dụ:
val myList: List<Kolory> = ArrayList()
ArrayList(24)
ví dụ: nếu tôi nghĩ rằng 24 là một khởi đầu tốt cho nó, thì có lẽ nó sẽ không cần nhiều hơn nó.
mutableListOf
. Chính xác sẽ là:val myList = arrayListOf<Kolory>() // same as // val myList = mutableListOf<Kolory>()
Tôi thích dưới đây để:
var book: MutableList<Books> = mutableListOf()
/ ** Trả về [MutableList] mới với các phần tử đã cho. * /
public fun <T> mutableListOf(vararg elements: T): MutableList<T>
= if (elements.size == 0) ArrayList() else ArrayList(ArrayAsCollection(elements, isVarargs = true))