1
public void sortByLastName(){
    Collections.sort(list, new Comparator<Person>() {
        public int compare(Person p1, Person p2){
            return p1.getLastName().compareTo(p2.getLastName());
        }
    } );
}

ここに示されているコードはcontactList配列の一部であり、リストを名前で並べ替えていますが、コンパイルできないようで、何が問題なのかわかりません。

編集:コンパイラのエラーは

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method sort(List<T>, Comparator<? super T>) in the type Collections is not applicable for the arguments (Person[], new Comparator<Person>(){})
at ContactList.sortByLastName(ContactList.java:34)
at Main.main(Main.java:18)
4

2 に答える 2

1

タイプCollectionsのsort(List、Comparator)は、引数には適用されません(Person []、new Comparator(){})

これはCollections.sort()、aListとaを受け取るメソッドが、オブジェクト()と。Comparatorの配列のように見える、渡したものと一致しないことを示しています。Javaの配列とリストは、最初は似ているように見えるかもしれませんが、異なっています。オブジェクトの配列を並べ替えるには、代わりにArrays.sort()を使用します。PersonPerson[]Comparator

于 2013-03-26T02:34:03.580 に答える
0

リストは配列であるため、Collections.sortではなくArrays.sortを使用して並べ替える必要があります。

于 2013-03-26T02:34:21.283 に答える