Kotlin是否提供了其收集界面的任何实现?
我看到Kotlin提供了一些实现集合的接口。 他们列在这个页面上 。
我没有看到Kotlin提供的这些实现。
不过,我确实看到全局名称空间中有一些函数可以帮助我们创建这些集合的实例。 例如为了创建一个可变的数字列表,我们可以说:
var numbers : MutableList<Int> = mutableListOf(1, 2, 3);
要创建列表的只读视图,我们可以说:
val readOnlyViewOfNumbers : List<Int> = numbers;
或者,要创建一个只读的数字列表,我们可以说:
val readOnlyListOfNumbers : List<Int> = listOf(1, 2, 3);
要创建n
项目的列表,并用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做这个?
有没有公开的集合接口实现? 他们有默认的构造函数吗?
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>()