Comparaison d'entiers louche
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() :
Code:
1 2 3 4 5
|
@Override
public boolean hasNext() {
return (messageIndex < (messages.size() - parcelSize));
} |
Voilà le code pour la fonction next():
Code:
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;
} |
(Parcel est aussi une de mes classes qui hérite d'ArrayList<Message>)
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.