我的目标是对人员列表进行排序。我正在使用 Comparator 接口的比较方法。
我创建了三个类。即
Person.java, AgeComparator.java, SortingExample.java
.
Person 类是一个简单的类,有两个字段(姓名、年龄),也有 getters。然后在我的 AgeComaparator 类中,我实现了 Comparator 接口并将 Person 类作为 Type 参数传递。
然后重写来自 Comparator 接口的比较方法。
因此,为了执行此应用程序,在我的 SortingExample 中,我创建了 3 个 Person 类型的对象。然后将这些对象添加到 Person 类型的 ArrayList 中。
然后调用带有两个参数的 Collections.sort() 方法。这些是列表对象和实现 Comparator 接口的类。
Person.java
package com.nadee.module3;
import java.util.Objects;
public class Person {
private final String name;
private final int age;
public Person(String name, int age) {
Objects.requireNonNull(name);
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
我正在为该应用程序使用 Eclipse IDE,并且在
sort
方法。
错误如下所示,
“集合类型中的方法 sort(List, Comparator) 不适用于参数 (List, AgeComparator)”
我在这里做错了什么?任何帮助将非常感激。
谢谢
拉莫斯之舞
相关分类