Collections.sort不起作用

时间:2013-03-26 02:24:43

标签: java arrays collections

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)

2 个答案:

答案 0 :(得分:1)

  类型集合中的

sort(List,Comparator)不适用于参数(Person [],new Comparator(){})

这告诉您,Collections.sort()List的方法Comparator与您输入的内容不匹配,这似乎是{{{ 1}}对象(Person)和Person[]。 Java中的数组和列表起初可能看起来很相似,但它们是不同的。要对对象数组进行排序,请改用Arrays.sort()

答案 1 :(得分:0)

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