Maison > Java > javaDidacticiel > Comment puis-je supprimer efficacement des objets d'un tableau Java ?

Comment puis-je supprimer efficacement des objets d'un tableau Java ?

Susan Sarandon
Libérer: 2024-12-29 12:59:11
original
319 Les gens l'ont consulté

How Can I Efficiently Remove Objects from a Java Array?

Suppression d'objets d'un tableau en Java

En Java, les tableaux sont des collections d'éléments de longueur fixe. Lorsque vous devez supprimer un objet d'un tableau, il n'existe pas de méthode intégrée simple pour le faire.

Considérez un tableau de chaînes :

String[] foo = { "a", "cc", "a", "dd" };
Copier après la connexion

Solution : Array vers la liste et retour

Une approche pour supprimer des objets d'un tableau consiste à le convertir en liste, à modifier la liste, puis à la reconvertir en un tableau.

List<String> list = new ArrayList<>(Arrays.asList(foo));
list.removeAll(Arrays.asList("a"));
foo = list.toArray(foo);
Copier après la connexion

Ce processus conserve la taille du tableau d'origine, les éléments après le dernier élément restant étant définis sur null.

Solution : nouveau tableau à partir de la liste

Si vous souhaitez un nouveau tableau exactement de la taille nécessaire, vous pouvez faire le suivant :

foo = list.toArray(new String[list.size()]);
Copier après la connexion
Copier après la connexion

Utilisation de réutilisables

Pour une utilisation fréquente, vous pouvez envisager de créer une constante de tableau de chaînes vide prédéfinie :

private static final String[] EMPTY_STRING_ARRAY = new String[0];
Copier après la connexion

Ensuite, la fonction de suppression peut être réécrite comme :

List<String> list = new ArrayList<> ();
Collections.addAll(list, foo);
list.removeAll(Arrays.asList("a"));
foo = list.toArray(EMPTY_STRING_ARRAY);
Copier après la connexion

Alternativement, vous pouvez utiliser l'approche suggérée par homme cynique :

foo = list.toArray(new String[list.size()]);
Copier après la connexion
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal