Si j'exécute cette opération sur List<Integer>
par exemple, cela fonctionne comme prévu (supprime les 5 premiers éléments), mais quand je l'exécute sur une liste de mes objets, rien ne se passe (la liste reste la même).Java: Pourquoi subList (0, 5) .clear() ne fonctionne pas sur mes objets?
list.subList(0, 5).clear();
Ma classe est un POJO qui ne met pas en œuvre equals
ou hashCode
, si cela importe.
MISE À JOUR: L'implémentation que j'utilise est ArrayList, qui est renvoyée à partir de la requête Hibernate. Il n'y a rien à montrer, vraiment. La sous-liste ne renvoie pas une liste vide.
Voici un exemple pour ceux qui ne beleive pas que cela fonctionne sur une liste de Entiers:
List<Integer> testList = new ArrayList<Integer>();
for(int i=0;i<10;i++) {
testList.add(i);
}
testList.subList(0, 5).clear();
for(int i=0;i<testList.size();i++) {
System.out.print(testList.get(i)+" ");
}
Le résultat est 5 6 7 8 9
MAJ2: En fait, tout fonctionne comme prévu, don Je ne sais pas comment je ne pouvais pas voir ça (j'ai été troublé par le nombre de résultats). Désolé pour fausse alerte :) Cette question pourrait être supprimée.
Pourriez-vous poster un petit extrait de code montrant le problème? Cela devrait vraiment fonctionner. –
Maintenant, que diriez-vous du code qui échoue? Le code réussi est difficile à déboguer ;-) –
Merde car il s'avère que cela fonctionnait depuis le début, par mauvais. Désolé :) – serg