[英]Sorting Array Lists - no instance(s) of type variable(s) exist so that K conforms to Comparable
[英]Array sort not working, no instance(s) of variable(s) T exist so that Employee conforms to Comparable
我创建了这个程序。 我试图让它对我的列表进行排序,但它不会排序。 我已经包括了主程序以及我的 Employee 类。
当我尝试对其进行排序时,t 会吐出这个:
集合中的 sort(java.util.list) 不能应用于 (java.util.ArrayList )
这是我给出的错误代码:不存在变量 T 的实例,因此Employee
符合Comparable<? super T>
Comparable<? super T>
import java.util.*;
import java.lang.*;
public class Employee {
String name;
public Employee(String name) {
this.name = name;
}
// Used to print student details in main()
public String toString() {
return this.name;
}
}
public class Schedule {
public static void main (String args[] ) {
ArrayList<Employee> listOfEmployees = new ArrayList<Employee>();
listOfEmployees.add(new Employee("Lauren"));
listOfEmployees.add(new Employee("Greg"));
listOfEmployees.add(new Employee("Brenda"));
listOfEmployees.add(new Employee("Derek"));
listOfEmployees.add(new Employee("Brittany"));
System.out.println("Unsorted");
for (int i=0; i<listOfEmployees.size(); i++) {
System.out.println(listOfEmployees.get(i));
}
Collections.sort(listOfEmployees);
System.out.println("Sorted Alphabetically");
for (int i=0; i<listOfEmployees.size(); i++) {
System.out.println(listOfEmployees.get(i));
}
}
}
您需要实现Comparable
接口并覆盖其compareTo
方法,如下所示:
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);
}
}
如果你不想实现Comparable
接口,那么你必须创建一个像下面这样的自定义Comparator
:
Comparator<Employee> employeeNameComarator = new Comparator<Employee>() {
@Override
public int compare(Employee employee1, Employee employee2) {
return employee1.name.compareTo(employee2.name);
}
};
并在排序时传递比较器对象,例如:
Collections.sort(listOfEmployees, employeeNameComarator);
您还可以使用Comparator
。
listOfEmployees.sort(Comparator.comparing(Employee::getName));
您需要实现 Comparable 接口才能使用 Collections.sort()。 请阅读以下 oracle 文档以获取更多信息:
https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.