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)
答案 0 :(得分:1)
类型集合中的sort(List,Comparator)不适用于参数(Person [],new Comparator(){})
这告诉您,Collections.sort()
和List
的方法Comparator
与您输入的内容不匹配,这似乎是{{{ 1}}对象(Person
)和Person[]
。 Java中的数组和列表起初可能看起来很相似,但它们是不同的。要对对象数组进行排序,请改用Arrays.sort()。
答案 1 :(得分:0)
因为你的列表是一个数组,所以你想要使用Arrays.sort而不是Collections.sort进行排序。