我看到 Kotlin 提供了许多用于实现集合的接口(interface)。它们列在 this page 上.
我没有看到 Kotlin 提供了这些的任何实现。
不过,我确实看到全局命名空间中有一些函数可以帮助我们创建这些集合的实例。例如要创建一个可变的数字列表,我们可以说:
var numbers : MutableList<Int> = mutableListOf(1, 2, 3);
要创建列表的只读 View ,我们可以说:
val readOnlyViewOfNumbers : List<Int> = numbers;
或者,要创建一个只读的数字列表,我们可以说:
val readOnlyListOfNumbers : List<Int> = listOf(1, 2, 3);
创建 n
的列表items 并用值 null
初始化每个元素,我们可能会说:
// Sorry, I forgot the function name for this one. It
// is not nullableListOf(...)
val numbers : List<Int> = nullableListOf(n);
要创建一个数组,比如说,5 个元素,并为数组的每个元素创建一个初始化函数,我们可以说:
val myArray : Array<Int> = Array(5, (i) => { /* return whatever */ };
但是,如果我想创建一个 List<Book>
里面没有任何书籍,但我只是想像这样初始化它(Java 或 C# 代码):
List<Book> books = new ArrayList<Book>(); // Java or
List<Book> books = new List<Book>(); // C#
我如何在 Kotlin 中做到这一点?
是否公开公开了其集合接口(interface)的实现?他们有默认构造函数吗?
最佳答案
Kotlin 使用 Java 的实现。
所以
val list = listOf<T>()
基本上是
val list: List<T> = ArrayList<T>()
这些函数是为了方便而创建的
使用 Java-Collections 也很好:
val list: List<Book> = ArrayList<Book>()
val mutableList: MutableList<Book> = ArrayList<Book>()
关于java - Kotlin 是否提供其集合接口(interface)的任何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39345248/