4 votes

que va-t-il arriver à ma liste de tableaux (ArrayList)

J'essaie de comprendre Java.

Supposons que j'ai un ArrayList de taille 50 et pré-rempli avec certains noms.

Supposons que je supprime le 3ème et le 4ème élément de la liste du tableau. Que va-t-il arriver à ma liste de tableaux ? Sera-t-elle réorganisée ? Renverra-t-elle un résultat nul si j'essaie d'accéder aux 3ème et 4ème éléments supprimés ?

19voto

Jack Points 61503

Non, les éléments après celui que vous allez supprimer seront décalés vers la gauche (opération coûteuse), donc vous n'aurez pas de trou.

Remarque : si vous supprimez le troisième élément, le cinquième élément sera décalé vers la gauche. Ainsi, si vous supprimez le quatrième élément, vous supprimez le cinquième élément de la collection de départ. Pour supprimer deux éléments consécutifs, vous devez fournir deux fois le même index.

7voto

berry120 Points 21945

Ils seront réorganisés et déplacés.

Si vous voulez qu'ils reviennent null Au lieu de cela, il suffit de mettre les éléments que vous voulez supprimer à null explicitement plutôt que de les supprimer.

5voto

Eng.Fouad Points 44085

Pourquoi n'avez-vous pas essayé vous-même ?

List<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
list.add("E");
list.add("F");
list.add("G");

for(int i = 0; i < list.size(); i++) System.out.println("index " + i + ": " + list.get(i));

System.out.println();
list.remove(0); // remove "A"

for(int i = 0; i < list.size(); i++) System.out.println("index " + i + ": " + list.get(i));

SORTIE :

index 0: A
index 1: B
index 2: C
index 3: D
index 4: E
index 5: F
index 6: G

index 0: B
index 1: C
index 2: D
index 3: E
index 4: F
index 5: G

3voto

Marko Topolnik Points 77257

Vous avez en fait les deux options disponibles :

final List<Character> x = new ArrayList<Character>(asList('a', 'b', 'c', 'd'));
x.set(1, null); // removes an element without shifting
x.remove(0);    // removes an element with shifting
System.out.println(x);

Imprimés

[null, c, d]

2voto

Pramod Kumar Points 3682

Les éléments de la liste du tableau seront réarrangés

Prograide.com

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.

Powered by:

X