亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Collections.sort() 方法未正確選擇重載方法

Collections.sort() 方法未正確選擇重載方法

藍山帝景 2023-11-01 22:16:39
我的目標是對人員列表進行排序。我正在使用 Comparator 接口的比較方法。我創建了三個類。即Person.java,?AgeComparator.java,?SortingExample.java.Person 類是一個簡單的類,有兩個字段(姓名、年齡),也有 getters。然后在我的 AgeComaparator 類中,我實現了 Comparator 接口并將 Person 類作為 Type 參數傳遞。然后重寫來自 Comparator 接口的比較方法。因此,為了執行此應用程序,在我的 SortingExample 中,我創建了 3 個 Person 類型的對象。然后將這些對象添加到 Person 類型的 ArrayList 中。然后調用帶有兩個參數的 Collections.sort() 方法。這些是列表對象和實現 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 + "]";? ? }}我正在為該應用程序使用 Eclipse IDE,并且在sort方法。錯誤如下所示,“集合類型中的方法 sort(List, Comparator) 不適用于參數 (List, AgeComparator)”我在這里做錯了什么?任何幫助將非常感激。謝謝
查看完整描述

1 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

Person類位于com.nadee.module3 , AgeComparator類用于此類 Person

但在SortingExample類中,您使用的是com.nadee.collections .Person 中的 Person。應該完全不行。您的代碼的另一點:

  • 請使用actors.sort(new AgeComparator());,Collections.sort太常見了


查看完整回答
反對 回復 2023-11-01
  • 1 回答
  • 0 關注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號