老师我这排序的时候为什么老师报错呢
来源:4-4 编程练习
轻舞的穹
2020-07-13 23:39:51
package com.imooc.set;
//实现Comparable接口
public class Employee {
//成员变量
private String id;
private String name;
private double salary;
//构造方法
public Employee() {
}
public Employee(String id, String name, double salary) {
super();
this.id = id;
this.name = name;
this.salary = salary;
}
//getter和setter方法
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
//toString()方法
@Override
public String toString() {
return "员工编号:" +this.getId() + ", 姓名:" + this.getName() + ", 工资:" + this.getSalary() + "]";
}
public int compareTo(Employee o) {
//按工资进行降序排序
double setSalary1 = this.getSalary();
double setSalary2 = o.getSalary();
int n = new Double(setSalary2-setSalary1).intValue();
return n;
}
}
package com.imooc.set;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class EmployeeTest {
public static void main(String[] args) {
// 定义Employee类的对象
Employee emp1 = new Employee("emp001", "张三", 1800);
Employee emp2 = new Employee("emp002", "李四", 2500);
Employee emp3 = new Employee("emp003", "王五", 1600);
// 将对象添加到List中
List<Employee> list = new ArrayList<Employee>();
list.add(emp1);
list.add(emp2);
list.add(emp3);
// 输出排序前的数据
System.out.println("排序前:");
for (Employee emp : list) {
System.out.println(emp);
}
// 排序
Collections.sort(list);
// 输出排序后的数据
System.out.println("排序后:");
for (Employee emp : list) {
System.out.println(emp);
}
}
}
2回答
好帮手慕小脸
2020-07-14
同学你好,这里是因为同学没有在实体类中实现Comparable接口,所以sort方法那会出现报错。修改代码如下所示:

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
慕丝1539783
2020-07-14
//实现Comparable接口
public class Employee {
}Employee类没有实现Comparable接口
//实现Comparable接口
public class Employee implements Comparable<Employee>{
}相似问题