教師IDのある生徒のリストがあります。以下は学生ビーンです。教師IDに基づいて学生リストを並べ替えます
public class Student {
private Integer Id;
private String Name;
private Integer teacherId;
public Student(Integer empId, String empName, Integer teacherId) {
super();
this.empId = empId;
this.empName = empName;
this.teacherId = teacherId;
}
// setters getters
}
私のメインクラスには、以下のようなデータを持つ生徒のリストがあります。
public static void main(String[] args) {
int teacherId = 6;
List<Student> list = new ArrayList<Student>();
list.add(new Student(1002, "Kausik",4));
list.add(new Student(1004, "Tridibendu",6));
list.add(new Student(1007, "Ram",8));
list.add(new Student(1003, "Neeraj",6));
list.add(new Student(1009, "Manish",8));
list.add(new Student(1001, "Shyam",1));
// Sorting collection in ascending order based on teacher id
Collections.sort(list, new StudentComparator());
}
以下は私の学生コンパレータクラスです。私が教師IDとして2を渡す場合、リストは、すべての生徒が教師ID 2に連絡した方法でソートされるべきであり、残りは下になければならないように。
また、javaでこれを行うことができる他の方法はありますか?
public class StudentComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
return o1.getTeacherId().compareTo(o2.getTeacherId());
}
}
以下は、私が得ている出力です。
Id: 1001, Name: Shyam, TeacherId: 1
Id: 1002, Name: Kausik, TeacherId: 4
Id: 1004, Name: Tridibendu, TeacherId: 6
Id: 1003, Name: Neeraj, TeacherId: 6
Id: 1007, Name: Ram, TeacherId: 8
Id: 1009, Name: Manish, TeacherId: 8
しかし、私はparameter.Meanとして渡された教師IDに基づいて出力をしたい私は教師IDとして6を渡すならば、私の出力は以下のようになります。
Id: 1004, Name: Tridibendu, TeacherId: 6
Id: 1003, Name: Neeraj, TeacherId: 6
Id: 1001, Name: Shyam, TeacherId: 1
Id: 1002, Name: Kausik, TeacherId: 4
Id: 1007, Name: Ram, TeacherId: 8
Id: 1009, Name: Manish, TeacherId: 8
ので、教師は6通りのIDを持っているのでなければなりませんリストのトップへ
を呼び出すことができます! 「私の比較方法では何を書いていますか」とはどういう意味ですか? あなたのリストに「スチューデントオブジェクト」を印刷しようとしましたか?これらは、次のコードを使用した後、 'teacherId'の基底でソートされます: 'Collections.sort(list、new StudentComparator());' – Abhishek
私は、パラメータとして渡された教師IDに基づいて並べ替えを意味します。先生のID 6でソートすると、下に出力する必要があります。ID:1001、名前:Shyam、TeacherId:6 ID:1002、名前:Kausik、TeacherId:6 ID:1004、名前:Tridibendu、TeacherId:5 ID:1003、名前:Neeraj、TeacherId:7 ID:1007、名前:Ram、TeacherId:8 ID:1009、名前:Manish、TeacherId:8 –
残りの生徒をどのように分類しますか?あるいはランダムであるべきかどうか。だから、あなたは上の6のTeacherIDに接続されている生徒を持っています、残りはどこに来ますか?私たちが降りるべきか、それとも重要ではないのか、次の5か7か?もう少し具体的にする必要があります。また、これまでに何を試しましたか? – Draken