Avatar ·

在 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`,而是其他实现?或者这只是一个习惯问题?