Bonjour,
C'est mon premier post ici et je viens avec une question tordue...
J'ai un objet en Java qui contient un ArrayList (ArrayList<Message> messages (Message est une classe perso)).
Je crée une méthode pour faire un itérateur qui donne les données de cette ArrayList par paquets de taille (int parcelSize dans mon code).
Pour se faire, j'utilise un index (int messageIndex) pour savoir où j'en suis.
Voilà le code pour la fonction hasNext() :
Voilà le code pour la fonction next():
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @Override public boolean hasNext() { return (messageIndex < (messages.size() - parcelSize)); }
(Parcel est aussi une de mes classes qui hérite d'ArrayList<Message>)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 @Override public Parcel next() { Parcel p = new Parcel(); for (int i = messageIndex; i < messageIndex+parcelSize; i++) { p.add(messages.get(i)); } messageIndex += parcelSize; return p; }
Mon problème est que par moment le hasNext() renvoie la valeur true alors que
- messageIndex = 1930
- messages.size() = 1939
- parcelSize = 10
Soit : true = (1930 < 1929) ???
Et ça, je ne comprends pas.
Partager