s1m*_*nw1 40
创建的列表asList保留对原始 的引用Array.
使用toList/ 创建的列表toMutableList由原始副本支持Array.
asList
该asList函数创建一个列表重用了相同的 Array情况下,这意味着改变原有阵列还对影响List:
val arr = arrayOf(1, 2, 3)
val l1 = arr.asList()
arr[0] = 4
println(l1) // [4, 2, 3]
Run Code Online (Sandbox Code Playgroud)
toList
这是不适合的情况下toList/ toMutableList因为该阵列被复制:
val arr = arrayOf(1, 2, 3)
val l2 = arr.toList()
arr[0] = 4
println(l2) // [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
Kotlin源代码可以在这里找到.
基本上asList()仍然保持对原始的引用Array.这意味着该列表的突变也会改变底层证券Array.
toList()只是简单地将值复制Array到一个新的List,但之后没有挥之不去的链接.
对于大多数用例,它们可能是可互换的.asList()可能会有稍微好一点的性能(因为它没有执行副本),并且toList()将成为针对意外突变的"安全"副本.
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |