首页 文章

Kotlin是否提供其集合接口的任何实现?

提问于
浏览
2

我看到Kotlin提供了许多用于实现集合的接口 . 它们列在this page上 .

我没有看到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那样做?

是否有公开的集合接口实现?他们有默认的构造函数吗?

1 回答

  • 5

    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>()
    

相关问题