I am practicing with comparators and interfaces and I have quite a hard time with it. I am trying to make a boolean method that returns true if the List is in ascending order.
But for some reason I get an error if I use Collections.sort.
What exactly am I missing in my code and why isn't it working?
Here is the code:
Constructor
public class Stijgen implements RijtjesControle{
private int nummer;
public Stijgen(int nummer) {
this.nummer = nummer;
}
public int getNummer() {
return nummer;
}
The main
public static void main(String[] args) {
List<Stijgen> rijtje = new ArrayList<Stijgen>();
rijtje.add(new Stijgen(4){});
rijtje.add(new Stijgen(7){});
rijtje.add(new Stijgen(1){});
rijtje.add(new Stijgen(9){});
rijtje.add(new Stijgen(3){});
System.out.println("Eerst de getallen op een rijtje zoals het nu is:");
for (Stijgen rijtje1 : rijtje) {
System.out.println(rijtje1.getNummer());
}
System.out.println("Nu gesorteed op stijgende volgorde");
Collections.sort(rijtje);
for (Stijgen rijtje1 : rijtje) {
System.out.println(rijtje1);
}
}
@Override
public <Stijgen extends Comparable<Stijgen>> boolean isStijgend(List<Stijgen> rijtje) {
Iterator<Stijgen> iter = rijtje.iterator();
if(!iter.hasNext()){
return true;
}
Stijgen stijgen = iter.next();
while(iter.hasNext()){
Stijgen stijgen1 = iter.next();
if(stijgen.compareTo(stijgen1) > 0){
return false;
}
stijgen = stijgen1;
}
return true;
}
}