老师我这排序的时候为什么老师报错呢

来源: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方法那会出现报错。修改代码如下所示:

http://img.mukewang.com/climg/5f0d1bbb091b8bf706220168.jpg

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

0

慕丝1539783

2020-07-14

//实现Comparable接口
public class Employee {
}

Employee类没有实现Comparable接口

//实现Comparable接口
public class Employee implements Comparable<Employee>{
}


0

0 学习 · 16556 问题

查看课程