Suppression d'un élément d'un tableau en Java

1. Vue d'ensemble

Dans ce rapide didacticiel, nous découvrirons les différentes manières de supprimer un élément d'un tableau en Java à l'aide de la bibliothèque Apache Commons Lang.

2. Maven

Ajoutons la dépendance commons-lang3 au fichier pom.xml de notre projet :

 org.apache.commons commons-lang3 3.9 

3. Suppression d'un élément

Avant de commencer, voyons ce qui se passe lorsque nous supprimons un élément d'un tableau sans utiliser la classe ArrayUtils de la bibliothèque Apache Commons Lang.

Compte tenu du tableau ci-dessous, supprimons un élément à l' index 2 :

Un moyen simple de le faire serait de remplacer la valeur stockée à l' index 2 par la valeur stockée à l' index 3 jusqu'à ce que nous atteignions la fin du tableau:

Notez qu'en supprimant l'élément de la manière ci-dessus, la taille du tableau resterait la même et la valeur stockée au dernier index serait vide. Étant donné que les tableaux ont une taille de mémoire fixe allouée lors de l'initialisation , la suppression d'un élément n'ajuste pas la taille du tableau.

Maintenant , regardons la représentation du tableau lors de la suppression d' un élément à l' aide de la supprimer méthode de ArrayUtils classe d'Apache Commons Lang:

Comme nous pouvons le voir, la taille du tableau est ici ajustée à 5 après la suppression de l'élément. La méthode remove crée un tout nouveau tableau et copie toutes les valeurs à l'exception de la valeur supprimée.

La classe ArrayUtils fournit deux façons de supprimer un élément d'un tableau. Regardons ces prochains.

4. Utilisation de l'index comme entrée

La première façon de supprimer un élément consiste à utiliser son index avec ArrayUtils # remove :

public int[] removeAnElementWithAGivenIndex(int[] array, int index) { return ArrayUtils.remove(array, index); }

Une autre variante est la méthode removeAll , que nous pouvons utiliser pour supprimer plusieurs éléments d'un tableau, compte tenu de leurs indices:

public int[] removeAllElementsWithGivenIndices(int[] array, int... indices) { return ArrayUtils.removeAll(array, indices); }

5. Utilisation de l'élément comme entrée

Ou disons que nous ne connaissons pas l'index de ce que nous supprimons. Dans ce cas, nous pouvons fournir l'élément à supprimer à l'aide de ArrayUtils # removeElement :

public int[] removeFirstOccurrenceOfGivenElement(int[] array, int element) { return ArrayUtils.removeElement(array, element); }

Voici une autre variante utile de cette méthode ArrayUtils # removeElements , au cas où il y aurait plus d'un élément que nous aimerions supprimer:

public int[] removeAllGivenElements(int[] array, int... elements) { return ArrayUtils.removeElements(array, elements); }

Parfois, nous souhaitons supprimer toutes les occurrences d'un élément donné. Nous pouvons le faire en utilisant ArrayUtils # removeAllOccurences :

public int[] removeAllOccurrencesOfAGivenElement(int[] array, int element) { return ArrayUtils.removeAllOccurences(array, element); }

6. Conclusion

Dans cet article, nous avons examiné les différentes façons de supprimer un élément / des éléments d'un tableau à l'aide de la bibliothèque Apache Commons Lang.

Pour en savoir plus sur les cas extrêmes, veuillez consulter le code source de ce didacticiel et les tests unitaires pertinents disponibles sur GitHub.