2012-07-11 75 views
3

在Java中,如何在字段级别对Java中的对象数组进行排序以进行等级比较?

Class StudentProgress 
{ 
     String Name; 
     String Grade; 
     /* CTOR goes here */ 
} 

main class 
{ 
    main method() 
    { 
     StudentProgress arrayofObjects[100000]; 
    } 
} 

如果牌号等D-,C-,B-,A-,A,B,C,d,A +,B +,C +,d +。我需要对这些对象进行排序 在此先感谢

+0

它必须是一个数组?可能它是一个'List'? – Bohemian 2012-07-11 01:40:12

+2

这是作业题,我说得对吗? – doNotCheckMyBlog 2012-07-11 01:40:15

回答

6

你最好的办法是让你的班级执行Comparable。像这样将工作:

public class StudentProgress implements Comparable<StudentProgress> { 

    String name; 
    String grade; 
    char baseGrade; // Just the letter 
    int gradeModifier; // -1 0 or +1 - done to make sorting easier 

    public StudentProgress(String name, String grade) { 
     this.name = name; 
     this.grade = grade; 
     // Extract the grade parts for use when comparing 
     baseGrade = grade.charAt(0); 
     gradeModifier = grade.length() == 1 ? 0 : Integer.parseInt(grade.charAt(1) + "1"); 
    } 

    public int compareTo(StudentProgress o) { 
     return baseGrade == o.baseGrade ? gradeModifier - o.gradeModifier : baseGrade - o.baseGrade; 
    } 
} 

然后进行排序,您只需使用Arrays.sort()方法:

StudentProgress[] array = ...; 
Arrays.sort(array); 

如果你不想让你的类来实现这个接口,可以提供一项独立单独Comparator拨打电话

+0

谢谢波希米亚人... – nallskarthi 2012-07-11 02:10:26

相关问题