Suppression tableau
helloworld95
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Dans le code si dessous, je ne comprend pas pourquoi je pourrait pas simplement faire
Dans le code si dessous, je ne comprend pas pourquoi je pourrait pas simplement faire
tableParticipant[i] = tableParticipant[i+1]? J'ai déjà utilisé cette méthode mais dans ce contexte cela ne fonctionne pas et je ne comprend pas pourquoi.
public boolean supprimerUnParticipant(String participant) { for (int i = 0; i < nombreInscrits; i++){ if (tableParticipants[i].equals(participant)){ tableParticipants[i] = tableParticipants[nombreInscrits-1]; nombreInscrits--; tableParticipants[nombreInscrits] = null; return true; } } return false;
A voir également:
- Suppression tableau
- Tableau word - Guide
- Forcer suppression fichier - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
"faire tableParticipant[i] = tableParticipant[i+1] ?"
Décaler une case n'est pas suffisant, il faut décaler toutes les cases jusqu'à la fin, sinon tu vas avoir un trou et perdre la dernière valeur.
Exemple : [1,2,3,4,5] je supprime 2, le décalage de 3 dans 2 donnerait [1,3,3,4], il faudrait encore décaler 4 dans 3 puis 5 dans 4 pour avoir [1,3,4,5]
"faire tableParticipants[i] = tableParticipants[nombreInscrits-1]"
Ici on ne fait toujours qu'une seule permutation, c'est donc plus rapide.
Inconvénient : cela change l'ordre des données.
"faire tableParticipant[i] = tableParticipant[i+1] ?"
Décaler une case n'est pas suffisant, il faut décaler toutes les cases jusqu'à la fin, sinon tu vas avoir un trou et perdre la dernière valeur.
Exemple : [1,2,3,4,5] je supprime 2, le décalage de 3 dans 2 donnerait [1,3,3,4], il faudrait encore décaler 4 dans 3 puis 5 dans 4 pour avoir [1,3,4,5]
"faire tableParticipants[i] = tableParticipants[nombreInscrits-1]"
Ici on ne fait toujours qu'une seule permutation, c'est donc plus rapide.
Inconvénient : cela change l'ordre des données.
Dans le code ci dessous, j'ai du mal a comprendre pourquoi ca marche avec le && et non le ||.
Sans le code complet difficile de savoir ce que ces 3 lignes de code sont censées faire, quel devrait être le résultat attendu et pourquoi avec les && c'est vrai et pourquoi avec les || c'est faux...
D'un point de vue générale, voir Java: les opérateurs logiques (booléens)