为什么Kotlin的List没有add和remove方法,而Map没有put方法?
大家好!我刚开始学习Kotlin,从Java转过来,遇到了一个令人困惑的情况。在Java中,我们习惯使用ArrayList、HashMap,并可以轻松调用list.add()、map.put()等方法。但在Kotlin中,当我编写:
```kotlin
val myList = listOf(1, 2, 3)
myList.add(4) // 错误:未解析的引用:add
val myMap = mapOf("a" to 1, "b" to 2)
myMap.put("c", 3) // 错误:未解析的引用:put
```
编译器报错说没有这些方法。我尝试使用mutableListOf和mutableMapOf——那里add和put可以工作。但为什么普通的listOf和mapOf没有这些方法?这是语言bug吗?还是我误解了Kotlin的哲学?
请告诉我,在Kotlin中如何正确处理集合,如果有时需要添加元素,有时只需读取数据?另外,这些“mutable”和“immutable”到底是什么意思?提前感谢!
<<>>
简短回答:可变集合与不可变集合的区别
在Kotlin中,集合分为两种类型: