Java 数组排序不起作用,不存在变量T的实例,因此Employee符合可比较的
我创建了这个程序。我试图让它对我的列表进行排序,但它无法排序。我包括了主要课程和我的员工课程 当我尝试分类时,t会说出: 集合中的排序(java.util.list)不能应用于(java.util.ArrayList)Java 数组排序不起作用,不存在变量T的实例,因此Employee符合可比较的,java,arrays,list,Java,Arrays,List,我创建了这个程序。我试图让它对我的列表进行排序,但它无法排序。我包括了主要课程和我的员工课程 当我尝试分类时,t会说出: 集合中的排序(java.util.list)不能应用于(java.util.ArrayList) 下面是给出的错误代码:不存在变量T的实例,因此Employee符合compariable您需要实现compariable接口并覆盖其comparieto方法,如下所示: public class Employee implements Comparable<Employee
下面是给出的错误代码:不存在变量T的实例,因此
Employee
符合compariable您需要实现compariable
接口并覆盖其comparieto
方法,如下所示:
public class Employee implements Comparable<Employee> {
String name;
public Employee(String name) {
this.name = name;
}
public String toString() {
return this.name;
}
@Override
public int compareTo(Employee employee) {
return this.name.compareTo(employee.name);
}
}
排序时传递比较器对象,如下所示:
Collections.sort(listOfEmployees, employeeNameComarator);
您还可以使用比较器
listOfEmployees.sort(Comparator.comparing(Employee::getName));
为了使用Collections.sort(),您需要实现可比较接口。
有关详细信息,请浏览以下oracle文档:
您必须说明如何在员工的两个实例之间进行比较(也许这可以帮助您)谢谢您的帮助!如果您想使用任何其他属性在运行时排序,则可以考虑使用<代码>比较器< /代码>。
Collections.sort(listOfEmployees, employeeNameComarator);
listOfEmployees.sort(Comparator.comparing(Employee::getName));