public void printSortedGrade() {
this.datensatz1.stream().filter(kurs -> {
return kurs.tookExam()==true;
}). sorted((a, b) -> {
return a.compareTo (b);
}). sorted((a, b) -> {
return a.getExamGrade().compareTo (b.getExamGrade());
}).forEach(c -> {
System.out.println(c.toString());
});
}
da ist die wurzel des problems..da bekomme ich die diagnose ''cannot invoke compareTo (double) on the primitive type double''return a.getExamGrade().compareTo (b.getExamGrade());
getExamGrade()
gibt dir wie die Fehlermeldung schon sagt ein double
zurück.Double
bzw. deren compare
Methode gehen, siehe dazu diesen Link: https://www.tutorialspoint.com/java/lang/double_compare.htmpublic void printSortedGrade() {
this.datensatz1.stream().filter(kurs -> {
return kurs.tookExam()==true;
}). sorted((a, b) -> {
return a.compareTo (b);
});
double a
double b -> {
int vergleich = Double.compare(a, b);
if (vergleich > 0) {
System.out.print(a.getExamGrade);
}
else (vergleich < 0) {
System.out.print(b.getExamGrade);
}
}.forEach(c -> {
System.out.println(c.toString());
});
public void printSortedGrade() {
this.datensatz1.stream().filter(kurs -> {
return kurs.tookExam()==true;
}). sorted((a, b) -> {
return a.compareTo (b);
}). sorted((a, b) -> {
return Double.compare(.....);
}).forEach(c -> {
System.out.println(c.toString());
});
}