2015-06-04 43 views
-3

我有一个练习面向对象。 定义具有名字和姓氏的抽象类人类。定义从人类衍生而来的新班级学生,并具有新的现场级别。使用新属性WeekSalary和WorkHoursPerDay和方法MoneyPerHour()定义从Human派生的类Worker,该方法返回工作人员按小时获得的资金。定义此层次结构的正确构造函数和属性。初始化一个10名学生的列表,并按升序对他们进行排序。初始化一个10名工人的清单,并按照每小时按降序排序。合并列表并按名字和姓氏排序。排序列表学生按等级

我已经创建了类:人类,学生和工作者。现在我想按年级对学生进行排序。我应该在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代替lambda表达式。

0

为了不为您解决功课,我不会发布代码。但是你需要看看你将如何重载这些不同的人类子类中的compare()方法。这种方式取决于比较什么,你可以按姓名,年级或薪水对他们进行分类。

+0

此外,您的列表需要是Human类型,因此您可以根据其父类合并两个列表(列表) – James