I don’t understand why my hasPrevious iterator is not functioning, it looks like this:
JavaScript
x
public void previousSong(){
Iterator<Song> iterator = songs.iterator();
if(iterator.hasPrevious()) {
System.out.println(iterator.previous().toString());
}
}
I have another function using hasNext() and it works, but this one will not.
JavaScript
public void nextSong(){
Iterator<Song> iterator = songs.iterator();
if(iterator.hasNext()) {
System.out.println(iterator.next().toString());
}
}
I am not sure if this method is no longer in existence or not, but when I look into it, Java websites speak of it. I don’t understand why it is not functioning.
Advertisement
Answer
The hasPrevious
and previous
methods are only defined for ListIterators (http://docs.oracle.com/javase/1.5.0/docs/api/java/util/ListIterator.html), a sub-interface of Iterator. As you’re only using an Iterator the only defined methods are hasNext()
, next
and remove
– see here: http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Iterator.html.