我学会了如何使用比较器,但我对比较器有困难.我的代码中有错误:
Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comparable
at java.util.Arrays.mergeSort(Unknown Source)
at java.util.Arrays.sort(Unknown Source)
at java.util.Collections.sort(Unknown Source)
at New.TestPeople.main(TestPeople.java:18)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
import java.util.Comparator;
public class People implements Comparator {
private int id;
private String info;
private double price;
public People(int newid, String newinfo, double newprice) {
setid(newid);
setinfo(newinfo);
setprice(newprice);
}
public int getid() {
return id;
}
public void setid(int id) {
this.id = id;
}
public String getinfo() {
return info;
}
public void setinfo(String info) …Run Code Online (Sandbox Code Playgroud) 可能重复:
使用多个键对Java对象进行排序
我找不到使用此方法的任何示例,所有示例都给出第二个参数"null".我听说这个方法用于根据多个标准对类进行排序,但没有找到示例.
public class Student implements Comparable<Student> {
String name;
int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return name + ":" + age;
}
@Override
public int compareTo(Student o) {
Integer myAge = age;
Integer oAge = o.age;
return myAge.compareTo(oAge);
}
Run Code Online (Sandbox Code Playgroud)
}
对于这个类,如果我想根据他们的姓名和年龄对学生列表进行排序我如何使用方法集合排序(List,Comparator)
我有一个类,我已经用一个属性对它进行排序.现在我需要做另一件事,我需要创建另一种方法来对数据进行排序.我该怎么做,所以我可以在两种方法之间做出选择.我知道的唯一命令是Collections.sort,它将从我想要比较其数据的类中获取方法compareTo.
它甚至可能吗?