我有一个学生的列表,他们的教师编号与他们联系过。下面是学生豆。根据他们的教师编号排序学生列表
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());
}
下面是我的学生比较类。任何人都可以帮助我在比较方法中写什么,所以如果我将2作为教师编号,则列表应按照与教师编号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
,但我想基于传递教师ID作为parameter.Mean输出,如果我通过6作为教师ID,然后在我的输出应低于:
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
所以老师有id作为6应该是列表顶部。
是什么..The代码似乎罚款的问题! 你的意思是“我在比较方法中写什么”? 您是否尝试在列表中打印“学生对象”?在使用下面的代码之后,这些应该根据'teacherId'排序: 'Collections.sort(list,new StudentComparator());' – Abhishek
我的意思是根据作为参数传递的教师id进行排序。如果我按照教师ID 6排序,那么应输出下面的内容。学生联系教6应该在顶部 Id:1001姓名:Shyam,TeacherId:6 Id:1002,姓名:Kausik,TeacherId:6 Id:1004,姓名:Tridibendu,TeacherId:5 Id:1003,名字:Neeraj,TeacherId:7 Id:1007,Name:Ram,TeacherId:8 Id:1009,Name:Manish,TeacherId:8 –
你会如何分类其余的学生?或者他们应该是随机的。所以你有一些与上面6位TeacherID相关的学生,其余的来自哪里?如果下一个5或7,我们应该降序,还是不重要?需要更具体些。另外,你到目前为止尝试过什么? – Draken