2015-06-04 2 views
-3

У меня есть упражнение ООП. Определить абстрактного класса Человек с именем и фамилией. Определите нового студента класса, который является производным от Человека и имеет новый полевой класс. Определите класс Worker, полученный от Human, с новым свойством WeekSalary и WorkHoursPerDay и методом MoneyPerHour(), который возвращает деньги, полученные за час работником. Определите правильные конструкторы и свойства для этой иерархии. Инициализируйте список из 10 учеников и сортируйте их по классам в порядке возрастания. Инициализируйте список из 10 работников и сортируйте их по деньгам в час в порядке убывания. Объедините списки и отсортируйте их по имени и фамилии.Сортировка списка Учащийся по шкале

У меня есть классы: человек, студент и рабочий. Теперь я хочу отсортировать список Student by Grade. Что я должен кодировать в java?

package Exercise2; 

import java.util.*; 

public class Main { 

    public static void main(String[] args) { 

     List<Student> students = Arrays.asList(
       new Student("Tam","Le Trung Ngoc ", "2011"), 
       new Student("Thai","Le Hoang Thai ", "2012"), 
       new Student("Phuong", "Vu Thi Thu ","2011"), 
       new Student("Nguyen", "Tran ", "2013"), 
       new Student("Hoang", "Pham Minh ", "2009"), 
       new Student("Tri","Truong Hoang ", "2011"), 
       new Student("Tuan", "Nguyen Anh ","2015"), 
       new Student("Tai", "Le Minh ", "2015"), 
       new Student("Cuong", "Nguyen Manh ", "2012"), 
       new Student("An","Pham Phuoc ", "2011")); 
     System.out.println("------------STUDENTS------------"); 
     System.out.println(students); 

     System.out.println("------------WORKERS------------"); 

     List<Worker> workers = Arrays.asList(
       new Worker("An","Le Minh ",150,8), 
       new Worker("Hai","Nguyen Thanh ",200,4), 
       new Worker("Lan","Nguyen Thi ",350,12), 
       new Worker("A","Nguyen Van ",150,5), 
       new Worker("Lua","Tran Thi Kim ",150,4), 
       new Worker("Tu","Nguyen Thanh ",125,6), 
       new Worker("Phong","Le Trung ",375,8), 
       new Worker("Trang","Nguyen Thi Yen ",500,8), 
       new Worker("Thien","Le Ngoc ",1500,8), 
       new Worker("Vu","Le ",150,8) 
       ); 
     System.out.println(workers); 
    } 

} 
+5

Сначала вы должны ввести код. Если он не делает то, что вы ожидаете, разместите этот код, а затем мы сможем помочь. – Shar1er80

+2

Google «Список сортировки Java». Сделайте попытку или 10. Вернитесь, если у вас появятся дополнительные вопросы. – Ordous

ответ

0

Используйте Comparator при сортировке коллекции:

Collections.sort(students, (Student o1, Student o2) -> { 
    return o1.getGrade().compareTo(o2.getGrade()); // Tune this to your needs 
}); 

Если вы не используете Java 8 вы должны использовать (старомодный) new Comparator вместо лямбда-выражения.

0

Чтобы не решить вашу домашнюю работу для вас, я не буду публиковать код. но вам нужно посмотреть, как вы перегрузите метод compare() в этих разных подклассах человека. Таким образом, в зависимости от того, что сравнивается, вы можете сортировать их по имени, классу или зарплате.

+0

Также ваш список должен иметь тип Human, чтобы вы могли объединить два списка на основе их родительского класса. (Список ) – James

Смежные вопросы