在 Kotlin 中 ArrayList<String>() 和 mutableListOf<String>() 有什么区别?
你好!我在学习 Java 之后开始学习 Kotlin,注意到创建可变列表有两种方式:
```kotlin
val list1: ArrayList = ArrayList()
val list2: MutableList = mutableListOf()
```
两种方式似乎工作方式相同:我可以添加、删除和修改元素。但让我困惑的是,一种情况类型明确指定为 `ArrayList`,而另一种情况是 `MutableList`。
我尝试编写了这样的代码:
```kotlin
fun processList(list: MutableList) {
list.add("Kotlin")
}
val arrayList = ArrayList()
val mutableList = mutableListOf()
processList(arrayList) // 可以工作
processList(mutableList) // 也可以工作
```
两个列表都传递给了期望 `MutableList` 的函数。那么,它们是一样的吗?还是在性能、内存或行为上有一些细微的差别?
也许 `mutableListOf()` 返回的不是 `ArrayList`,而是其他实现?或者这只是一个习惯问题?