Student
のオブジェクトで構成されたArrayList
があります。これらのオブジェクトには、名、姓、ラボグレード、プロジェクトグレード、試験グレード、トータルグレードが含まれます。私はStudent
オブジェクトを合計グレードに基づいてArrayList
にソートする関数を記述しようとしています。arraylistのオブジェクトを比較して注文する、
は、ここに私の学生のクラスです:
public class Student {
// fields
private String firstname;
private String lastname;
private int labgrade;
private int projectgrade;
private int examgrade;
private int totalgrade;
// constructor
public Student(String firstname, String lastname, int labgrade,
int projectgrade, int examgrade) {
this.firstname = firstname;
this.lastname = lastname;
this.labgrade = labgrade;
this.examgrade = examgrade;
this.totalgrade = labgrade + projectgrade + examgrade;
}
// method
public String toString() {
String s = firstname + " " + lastname + " has a total grade of "
+ totalgrade;
return s;
}
public int compareTo(Student s) {
return (totalgrade = s.totalgrade);
}
そして、ここで私はソートするために実行しようとしましたものです:
private ArrayList<Student> arraylist = new ArrayList<Student>();
public void SortStudent() {
Collections.sort(arraylist);
}
をしかし、それはそれだけでList
ないArrayList
上で動作することができます言うので、それは動作しません。 。私のSortStudent
メソッドを修正する助けがありますか?
'' ArrayList'is List'。 –
あなたの 'compareTo()'が間違っています。 'totalgrade = s.totalgrade'は比較ではなく*割り当て*です。比較するには、 'return Integer.compare(this.totalgrade、s.totalgrade)'を使用します。 – Andreas