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与您提交的不匹配,这似乎是一个Person对象数组 ( Person[]) 和 a Comparator。Java 中的数组和列表乍一看可能很相似,但它们是不同的。为了对对象数组进行排序,请改用Arrays.sort()

于 2013-03-26T02:34:03.580 回答
0

因为您的列表是一个数组,所以您需要使用 Arrays.sort 而不是 Collections.sort 进行排序。

于 2013-03-26T02:34:21.283 回答