有人知道为什么这段代码没有对员工进行正确的排序吗?我需要他们按照工资的多少按升序排序。
我想我把smth搞砸了,因为我把工资存进了双打。但我真的不知道该怎么办。Plz帮助。
public static void main(String[] args) {
List<Employee> employees = new ArrayList<>(List.of(
new Employee("Steve", 3.1),
new Employee("Mark", 4.2),
new Employee("Oliver", 4)));
System.out.println("Before sorting: " + employees);
employees.sort(Employee::compareTo);
System.out.println("After sorting: " + employees);
}
class Employee implements Comparable<Employee> {
private final String name;
private final double salary;
public Employee(String name, double salary) {
this.name = name;
this.salary = salary;
}
@Override
public int compareTo(Employee employee) {
return (int) this.salary - (int) employee.salary;
}
@Override
public String toString() {
return name + " " + Math.round(salary * 100.0) / 100.0; //2 digits after the dot
}
}
输出:
这也不管用
问题在于您的compare to功能。4.2和4.0都是4作为整数,所以你的程序不会交换它们。
你需要比较双打。我想,这个会帮助你的。
情况: 我正在尝试实现一个为项目分配权重的专用集合。 我无法使用
问题内容: 我不确定如何在我的抽象类中实现类似的接口。我有以下示例代码可用来尝试解决这个问题: 我有一个测试类,该类将创建Animal类型的对象,但是我希望在该类中具有一个可比的接口,以使发现的年纪高于低位。我不知道如何去解决这个问题。 问题答案: 您只需要定义即p。然后,您必须以自己喜欢的方式实现该方法。 使用的实现,具有较高级别的动物将获得更高的顺序。我希望你的想法和这个例子。
我不确定如何在我的抽象类中实现一个可比较的接口。我有下面的示例代码,我正在使用它来尝试和得到我的头脑周围: 我有一个测试类,它将创建动物类型的对象,但是我想在这个类中有一个类似的接口,这样更早的发现排名就会更高。不过,我不知道该怎么做。
我有一个在dd的日期列表。MM。YYYY HH: mm格式存储为字符串当我试图对这些日期进行排序时,我得到了除00小时和12小时值之外的所有值 数组以15分钟的间隔出现,所以排序后我得到了类似的东西 下面是排序代码 请帮帮我,我该如何继续下去
问题内容: 好的,我已经尝试了Stack上的所有解决方案,但没有任何效果。我当前的方法从MainActivity注册了“ SmsListener”接收器。我要做的就是初始化onReceive方法。没有错误;它根本不是在广播。我究竟做错了什么?在此处粘贴适用的代码。可能需要的其他任何东西都可以问。 更新:这是一个未解决的类似问题,当 我在Android6.0.1下测试我正在测试的GoogleHang