Kotlin-使用listOf()将列表作为参数创建新列表

时间:2020-05-20 12:00:16

标签: android list kotlin

我想从一个或多个列表,地图或其他集合中创建列表,地图或其他集合。

在dart中,您使用以下语法生成一个或多个列表的列表:

List<int> l1 = [1, 2];
List<int> l2 = [3, 4, 5];
List<int> result = [...l1, ...l2];
//result == [1, 2, 3, 4, 5]

在科特林,我试图做同样的事情:

val l1 : List<Int> = listOf(1, 2)
val l2 : List<Int> = listOf(3, 4, 5)
val result: List<Int> = listOf(l1, l2);
//does not compile

有什么方法可以像在飞镖中展开...语法那样的列表吗?

3 个答案:

答案 0 :(得分:1)

在kotlin中,您只能使用l1 + l2。

val list1 = listOf(1, 2, 3, 4)
val list2 = listOf(3, 4, 5)
val list3 = list1 + list2 #[1, 2, 3, 4, 3, 4, 5]

此外,plus是另一个便捷的操作。

答案 1 :(得分:1)

有很多方法可以做到这一点!如先前的答案所建议。 但是...的完全相同的行为在Kotlin列表中不存在。

但是您可以使用*(数组扩展运算符)来扩展数组。

例如,如果您拥有:

val array1 = arrayOf(1, 2, 3)
val array2 = arrayOf(4, 5, 6)
val array1AndArray2 = arrayOf(*array1, *array2)

array1AndArray2的结果将为arrayOf(1、2、3、4、5、6)

但是据我所知,列表不支持此行为

有关更多信息,请检查:https://kotlinlang.org/docs/reference/functions.html

答案 2 :(得分:0)

您可以使用:

val result: List<Int> = l1.plus(l2)