Avatar ·

Quelle est la différence entre ArrayList<String>() et mutableListOf<String>() en Kotlin ?

Bonjour ! J'ai commencé à apprendre Kotlin après Java et j'ai remarqué qu'il existe deux façons de créer une liste mutable : ```kotlin val list1: ArrayList = ArrayList() val list2: MutableList = mutableListOf() ``` Les deux options semblent fonctionner de la même manière : je peux ajouter, supprimer et modifier des éléments. Mais ce qui me trouble, c'est que dans un cas le type est explicitement `ArrayList`, et dans l'autre `MutableList`. J'ai essayé d'écrire ce code : ```kotlin fun processList(list: MutableList) { list.add("Kotlin") } val arrayList = ArrayList() val mutableList = mutableListOf() processList(arrayList) // fonctionne processList(mutableList) // fonctionne aussi ``` Les deux listes sont passées à une fonction qui attend `MutableList`. Cela signifie-t-il que c'est la même chose ? Ou y a-t-il des différences subtiles en termes de performance, mémoire ou comportement ? Peut-être que `mutableListOf()` ne retourne pas un `ArrayList`, mais une autre implémentation ? Ou est-ce que c'est la même chose ?