2016-04-16 3 views
1

Вопрос: Как напрямую сравнивать данные, введенные вручную студентом (см. Ниже = 'Elise') с другими оценками Aggergate, а затем сортировать данные с наибольшим «Aggergate» 'в верхней части выходного файла.Java Интерфейс реализации Сравнительный, сравнивающий вручную вводимые данные с сгенерированными данными

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

Я предлагаю вам сократить код на только биты, которые компилировать. О, и не забудьте задать вопрос, хотите ли вы получить ответ. –

ответ

1

Чтобы создать TreeSet, который обратного рода совокупным вы можете сделать

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

Этот путь ваше дерево будет в обратном порядке.

Примечание: только в случае, если два студента имеют один и тот же агрегат, то GetId должны гарантировать, что они никогда не считается дубликатом

+0

Привет, сначала; спасибо, что нашли время ответить. Я все еще новичок в java и очень смущен с использованием compable. Я уточнил и изменил код, и мой вопрос был более прямым и точным, так как ваш ввод полезен, но мой код, тем не менее, все еще не работает. –

+0

@KazNevermore Что значит «не работает»? Он даже не компилируется. В вашем первом методе у вас есть код после вашего «возврата», и я предлагаю вам прочитать ваши компилируемые сообщения и исправить их все. –