如何在 Kotlin 的另一个 ArrayList 中的 ArrayList 上存储 subList 操作?

How to store subList operation on an ArrayList in another ArrayList in Kotlin?

我在 IntelliJ Idea

中使用 Kotlin REPL



我有一个ArrayList

val myArrayList: ArrayList<String?> = arrayListOf("pig", null, "cow", "chicken", "chicken", "duck", "turkey", "pig", null, null, "turkey", "pig")



操作

myArrayList.subList(2, 3)

给我输出:

res5: kotlin.collections.MutableList<kotlin.String?> = [cow]



但是操作

val myArraySubList: ArrayList<String?> = myArrayList.subList(2, 3)

给我错误:

error: type mismatch: inferred type is MutableList<String?> but kotlin.collections.ArrayList<String?> /* = java.util.ArrayList<String?> */ was expected
val myArraySubList: ArrayList<String?> = myArrayList.subList(2, 3)
                                         ^



那么,这里我如何将 ArrayList 上的 subList 操作的结果存储在另一个 ArrayList 中?

ArrayList(myArrayList.subList(2, 3))

使用这个构造函数:

<init>(elements: Collection<E>)

Creates an ArrayList filled from the elements collection.

但请考虑您是否真的需要它:明确使用 ArrayList 而不是 MutableList 很少有用。