我的目標(biāo)是對人員列表進(jìn)行排序。我正在使用 Comparator 接口的比較方法。我創(chuàng)建了三個類。即Person.java,?AgeComparator.java,?SortingExample.java.Person 類是一個簡單的類,有兩個字段(姓名、年齡),也有 getters。然后在我的 AgeComaparator 類中,我實(shí)現(xiàn)了 Comparator 接口并將 Person 類作為 Type 參數(shù)傳遞。然后重寫來自 Comparator 接口的比較方法。因此,為了執(zhí)行此應(yīng)用程序,在我的 SortingExample 中,我創(chuàng)建了 3 個 Person 類型的對象。然后將這些對象添加到 Person 類型的 ArrayList 中。然后調(diào)用帶有兩個參數(shù)的 Collections.sort() 方法。這些是列表對象和實(shí)現(xiàn) Comparator 接口的類。Person.javapackage 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 + "]";? ? }}我正在為該應(yīng)用程序使用 Eclipse IDE,并且在sort方法。錯誤如下所示,“集合類型中的方法 sort(List, Comparator) 不適用于參數(shù) (List, AgeComparator)”我在這里做錯了什么?任何幫助將非常感激。謝謝
1 回答

拉莫斯之舞
TA貢獻(xiàn)1820條經(jīng)驗 獲得超10個贊
Person類位于com.nadee.module3 , AgeComparator類用于此類 Person
但在SortingExample類中,您使用的是com.nadee.collections .Person 中的 Person。應(yīng)該完全不行。您的代碼的另一點(diǎn):
請使用
actors.sort(new AgeComparator());
,Collections.sort
太常見了
添加回答
舉報
0/150
提交
取消