Avatar ·

Pourquoi en Kotlin List n'a-t-il pas de méthodes add() et remove(), et Map n'a-t-il pas put() ?

Bonjour ! Je viens de commencer à apprendre Kotlin après Java et je suis confronté à une situation incompréhensible. En Java, j'avais l'habitude de travailler avec des listes comme ceci : ```kotlin val list = ArrayList() list.add("Привет") // En Java, cela fonctionne ``` Mais en Kotlin, j'obtiens une erreur de compilation lorsque j'essaie d'appeler `add()` ou `remove()` sur un `List` normal. Même problème avec `Map` — la méthode `put()` n'est pas disponible. Pourtant, le code compile si j'utilise `MutableList` ou `MutableMap`. Voici un exemple qui ne fonctionne pas : ```kotlin fun main() { val fruits = listOf("Яблоко", "Банан") fruits.add("Апельсин") // Erreur : Unresolved reference: add val capitals = mapOf("Россия" to "Москва") capitals.put("Франция", "Париж") // Erreur : Unresolved reference: put } ``` Pourquoi cela a-t-il été fait ainsi ? Quel est le sens de la séparation entre `List` et `MutableList` ? Et comment ajouter/supprimer correctement des éléments ? J'ai lu la documentation, mais j'aimerais comprendre la philosophie de cette approche. Merci d'avance pour l'explication !