Avatar ·

Por que em Kotlin List não tem métodos add() e remove(), e Map não tem put()?

Olá! Comecei a estudar Kotlin depois de Java e me deparei com uma situação confusa. Em Java, estou acostumado a trabalhar com listas assim: ```kotlin val list = ArrayList() list.add("Olá") // Em Java isso funciona ``` Mas em Kotlin recebo um erro de compilação quando tento chamar `add()` ou `remove()` em um `List` comum. O mesmo problema com `Map` — o método `put()` não está disponível. No entanto, o código compila se eu usar `MutableList` ou `MutableMap`. Aqui está um exemplo que não funciona: ```kotlin fun main() { val fruits = listOf("Maçã", "Banana") fruits.add("Laranja") // Erro: Unresolved reference: add val capitals = mapOf("Rússia" to "Moscou") capitals.put("França", "Paris") // Erro: Unresolved reference: put } ``` Por que isso foi feito? Qual é o sentido de separar `List` e `MutableList`? E como adicionar/remover elementos corretamente? Li a documentação, mas quero entender a filosofia dessa abordagem. Desde já agradeço pela explicação!