java - Kotlin 是否提供其集合接口(interface)的任何实现?

标签 java c# kotlin

我看到 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/

相关文章:

java - 如何在 Kotlin 中传递有界通配符类型参数?

java - Kotlin 问题 “One type argument expected for class ExpandableRecyclerAdapter”

java - 如何在 java 8 中将 List 转换为 Map,.map 函数在链中

c# - 从当前登录用户的 Active Directory 中获取专有名称

android - 如何从 crashlytics 清除我的应用注销数据

spring-boot - 端点 "/api-docs"不适用于自定义 GsonHttpMessageConverter

java - YUI 压缩器运行时错误

java - 如何自己写addFirst方法来实现?我还需要补充什么吗?

c# - 对象不能从 DBNull 转换为其他类型? C#

c# - 如何安装 Microsoft.SqlServer.Management.SqlParser?