Non, en effet,
listeCartes.subList(0,26);
(j'ai fait une petit erreur, dans mon précédent post, avec l'index de fin qui est exclus alors que j'avais fait comme s'il était inclus
)
ne supprime pas les 74 autres cartes, c'est une méthode qui récupère une sous liste dans la liste d'origine (attention elle reste liée à la liste d'origine) : le résultat de l'appel est cette sous liste :
List<Carte> sousListe = listeCartes.subList(0,26);
je ne connaissais pas la structure complète de ton programme et je ne savais pas que tu souhaitais conserver ta liste d'origine comme base pour remplir ta grille (je pensais que tu voulais conserver dans un coin ta liste de 100 photos, pour pouvoir la réutiliser à chaque nouvelle partie.
si tu veux que ta variable listeCartes deviennent une liste de 26 paires.
soit tu crées une nouvelle liste avec ces 26 cartes, soit tu enlèves les 74 autres.
par exemple :
listeCartes = new ArrayList<Carte>(listeCartes.subList(0,26));
ou pour supprimer les 74 autres
while( listeCartes.size()>26 ) listeCartes.remove(26);
soit tant qu'il reste plus de 26 cartes (de 0 à 25 donc), supprimer la carte d'index 26
ou
listeCartes.subList(26,100).clear();
soit enlever de la liste les cartes de 26 à 99... (ou plutôt sémantiquement, créer une sous-liste allant de 26 à 100 exclus, et retirer tous les éléments s'y trouvant)
ensuite pour obtenir tes 26 paires il suffit d'ajouter à ta liste, les cartes qui s'y trouvent déjà :
listeCartes.addAll(listeCartes);
puis de la remélanger :
Collections.shuffle(listeCartes);
Partager