kotlin - 如何初始化列表<列表> 在科特林?
问题描述
根据这里的 leetcode 问题,我需要返回List<List<Int>>
Kotlin 提交的类型。我尝试使用listOf()
但无法创建。我的另一个猜测是使用 List 类型的 LinkedList:
var result: List<List<Int>> = LinkedList<List<Int>>()
intelliJ 的想法对上述声明没有任何警告,但add()
在结果变量上不可用。请让我知道我做错了什么。
List<List<Int>>
我应该如何在 kotlin 中初始化空类型?
解决方案
add
不适用于List
。它适用于MutableList
. LinkedList
是 a MutableList
,但是您List
通过将其分配给 type 的变量来将其向上转换为普通类型List
。
如果您需要在此函数中使用 MutableList 或 LinkedList,您可以通过不声明result
变量的类型来实现,因此它将隐含为 MutableList 或 LinkedList。当您从函数中返回它时,当您不再需要可变特性时,它将被隐式向上转换。
fun threeSum(nums: IntArray): List<List<Int>> {
val output = mutableListOf<MutableList<Int>>()
// logic
return output
}
或者
fun threeSum(nums: IntArray): List<List<Int>> {
val output = LinkedList<LinkedList<Int>>()
// logic
return output
}
LinkedList 是 MutableList 的一种特定类型,与默认的 MutableList (ArrayList) 相比,它在访问中间特定元素时更重且更慢,但在开始/结束时访问元素时更快,在插入或删除元素时更快。您通常只想mutableListOf
用来实例化可变列表。
推荐阅读
- python - 从熊猫数据框中提取重复
- wordpress - 安装失败:无法创建目录
- pyspark - 如何在数据框中的行数上循环pyspark数据框
- .net - 为什么 RSAEncryptionPadding.OaepSHA256 出现 RSA 加密错误?
- sql - 在 case 语句中设置条件
- javascript - 如何捕获输入到表格行组件中的数据
- c# - 如何使用 .net 中的充气城堡使用 RSA/ECB/OAEPWithSHA256AndMGF1Padding 进行加密?
- android - 使用嵌套导航进行深度链接(react-native)
- python - 在张量流中读取张量的值
- amazon-web-services - Aws cognito sms 在日志中发送成功但用户未收到?