2016-04-16 10 views
1

Frage: Wie vergleiche ich manuell eingegebene Studenteninformationen (unten gezeigt = 'Elise') mit anderen Aggergate-Markierungen, dann sortiere die Daten mit dem größten 'Aggergate' 'Nummer am Anfang der Ausgabedatei.Java Implementierungsschnittstelle Vergleichbar, manuell eingegebene Daten mit generierten Daten vergleichen

public class Student2 implements Comparable<Student2> { 

@Override 
    public int compareTo(Student2 o) { 
     return Double.valueOf(this.aggerate()).compareTo(Double.valueOf(o.aggerate())); 
    if (result > 0) { 
     return 1; 
     } else if (result < 0) { 
     return -1; 
     } else { 
     return 0; 
     } 
     } 


public static void main(String... args) { 
Set<Student2> Stu = new TreeSet<>(
        Comparator.comparing(Student2::aggregate).reversed() 
           .andThen(Student2::getId)); 
    Stu.add(new Student2(25321, "Elsie", 51.5, 45.6, 48.5, "3rd", "Proceed To Stage 2")); 
    Stu.stream().forEach((c) -> { 
     System.out.println(c); 
    }); 
} 

public double aggerate() { 
    DecimalFormat decFormat = new DecimalFormat("#.#"); 
    double aggerateMarks = Double.valueOf(decFormat.format((IR101Grades + IR102Grades)/2)); 
    aggerateMarks = Math.round(aggerateMarks * 100.0)/100.0; 
    return aggerateMarks; 

} 
public String toString() { 
    return "\n" + studentID + " |" + studentName + "\n" + "IR101: " + IR101Grades + " | " + "IR102: " + IR102Grades + " |" 
      + " Aggregate Mark: " + aggerate() + "\n" + "Class: " + setGrade() + " | " + "Outcome: " + setClass() 
      + "\n" + "\n" + "-----------------------------------------------------" + "\n" + "\n"; 
} 
+1

betrachtet Ich schlage vor, Sie den Code reduzieren die Bits nur die kompilieren. Oh, und vergessen Sie nicht, eine Frage zu stellen, wenn Sie eine Antwort bekommen möchten. –

Antwort

1

Um eine TreeSet zu schaffen, die Art von Aggregat umkehren Sie

Set<Student2> Stu = new TreeSet<>(
         Comparator.comparing(Student2::aggregate).reversed() 
            .andThen(Student2::getId)); 

Auf diese Weise tun können Ihren Baum in umgekehrter Reihenfolge sein wird.

Hinweis: für alle Fälle zwei Studenten das gleiche Aggregat haben, sollte die getID sicherzustellen, dass sie nie ein Duplikat

+0

Hallo, zuerst aus; Danke, dass du dir die Zeit genommen hast zu antworten. Ich bin immer noch neu in Java und sehr verwirrt mit Compable. Ich habe den Code und meine Frage verfeinert und geändert, um direkter und präziser zu sein, da Ihre Eingabe hilfreich ist, aber mein Code funktioniert immer noch nicht. –

+0

@KazNevermore Was meinst du mit "nicht funktioniert"? Es kompiliert nicht einmal. In Ihrer ersten Methode haben Sie Code nach Ihrer Rückkehr und ich schlage vor, Sie lesen Ihre Kompilierungsnachrichten und beheben sie alle. –