按对象的属性对Arraylist进行排序

时间:2012-10-06 08:04:00

标签: java sorting comparator

所以我想通过使用我分配给它的对象String Name对我的ArrayList中的所有内容进行排序。

到目前为止,我已经阅读了有关比较器的信息,以获得我想要的功能。 但是当我实现它时,我得到了一个编译错误。

我像这样初始化它

private static ArrayList<PeopleInfo> infoArray = new ArrayList<PeopleInfo>();

并调用这样的排序

Collections.sort(infoArray, new CustomComparator());

这就是Class。

public class CustomComparator implements Comparator<PeopleInfo> {
    @Override
    public int compare(PeopleInfo o1, PeopleInfo o2) {
        return o1.GetLast().compareTo(o2.GetLast());
    }
}

我得到的错误是 “无法访问类型为mainClass的封闭实例。必须使用类型为mainClass的封闭实例限定分配(例如x.new A(),其中x是MainClass的实例)。”

不太了解发生了什么。 提前谢谢!

2 个答案:

答案 0 :(得分:3)

将Comparator类声明为静态类

public static class CustomComparator implements Comparator<PeopleInfo> {

答案 1 :(得分:0)

或者,您可以在主类之外声明比较器。