我想使用我创建的排序功能按年龄对学生进行排序,但我不确定是否需要在此部分实施比较器/可比较。
我有以下POJO:
public class Student {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
创建一个界面:
public interface CollectionsProblem {
public void sort(Collection<Student> memes, boolean ascending);
}
以下是界面的实现:
public class CollectionsProblemImpl implements CollectionsProblem {
public void sort(Collection<Student> students, boolean ascending) {
/****Need to add some sorting here in order to sort students by age
param0 - students: the collection to sort
param1 - ascending: true if the collection should be sorting in ascending order, otherwise false***
*/
}
}
答案 0 :(得分:0)
您可以在Comparable
POJO类中实现Student
,也可以通过实现Comparator
接口来编写单独的比较器,让我们说
public class StudentComparatorByAge implements Comparator<Student> {
@Override
public int compare(Object Obj1 , Object Obj2){
}
}
。然后使用Collections.sort(studentArray);
(如果实现Comparable
)或Collections.sort(studentArray,StudentComparatorByAgeObj );
(如果编写单独的比较器)。您还需要从StudentComparatorByAgeObj
创建StudentComparatorByAge
实例。
您的CollectionsProblem
界面没有意义,因为您不需要编写自己的排序功能 - 这已由Collections
类提供。比较逻辑是你的担心。