Comment ajouter un élément à un ArrayList
en Kotlin ?
Merci. Je me suis tapé la tête sur cette méthode plus dans Arrays...
Comment ajouter un élément à un ArrayList
en Kotlin ?
Pour les personnes qui viennent de migrer de java
En Kotlin
List
est par défaut immuable et la version mutable de Lists est appelée MutableList
.
Par conséquent, si vous avez quelque chose comme :
val list: List<String> = ArrayList()
Dans ce cas, vous n'obtiendrez pas de add()
car la liste est immuable. Vous devrez donc déclarer une méthode MutableList
comme indiqué ci-dessous :
val list: MutableList<String> = ArrayList()
Vous verrez maintenant un add()
et vous pouvez ajouter des éléments à n'importe quelle liste.
Quelle est la différence d'utilisation entre val list: MutableList<String> = ArrayList()
y val list = mutableListOf<String>()
?
Si vous avez un MUTABLE collection :
val list = mutableListOf(1, 2, 3)
list += 4
Si vous avez un IMMUTABLE collection :
var list = listOf(1, 2, 3)
list += 4
Notez que j'utilise val
pour la liste mutable afin de souligner que l'objet est toujours le même, mais que son contenu change.
Dans le cas d'une liste immuable, vous devez la rendre var
. Un nouvel objet est créé par la fonction +=
avec la valeur supplémentaire.
En faisant +=
dans une liste non-mutable, il faut copier tous les éléments de la liste dans une nouvelle liste mutable, puis la réaffecter à votre liste actuelle. Je ne savais pas qu'il était possible de déclarer votre liste en tant que var
. de toute façon, déclarer une liste comme var n'est pas une bonne idée pour moi.
Si une liste est immuable, vous n'avez pas d'autre choix que de la déclarer en tant que var
. Si une liste immuable est déclarée comme val
alors la liste ne pourra jamais être modifiée. Il suffirait de la réaffecter à une autre variable.
Vous pouvez ajouter un élément à arrayList en utilisant ajouter() en Kotlin. Par exemple,
arrayList.add(10)
Le code ci-dessus ajoutera l'élément 10 à arrayList.
Cependant, si vous utilisez un tableau ou une liste, vous ne pouvez pas ajouter d'élément. Ceci est dû au fait que Array y Liste sont immuables. Si vous voulez ajouter un élément, vous devrez utiliser MutableList.
Plusieurs solutions de contournement :
toMutableList()
méthode. Ensuite, ajoutez-y un élément.System.arraycopy()
méthode. Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.