我有一个特定的类,我们称它为ClassX。 ClassX是一个简单的小类。它有几个数据成员,一个构造函数和一个嵌套类(不那么简单)。嵌套类专门用于定义比较器,并以这种方式编写:
public static Comparator<ClassX> classXComparator = new Comparator<ClassX>()
{
public int compare(ClassX x1, ClassX x2)
{
//code that compares two data members and returns -1 for x2>x1, 1 for x1>x2,
//0 for x1 = x2
}
}
我还有另一个班级,我们称之为ClassA。 ClassA是我的项目的主要类,并且具有一个称为Entry的ClassX的ArrayList。我想在条目上调用Collections.sort();但是,我只是不知道如何。我尝试过的事情包括:
Collections.sort(entries, ClassX.classXComparator.compare(ClassX, ClassX));
Collections.sort(entries, ClassX.classXComparator.compare(ClassX a, ClassX b));
Collections.sort(entries, classXComparator.compare());
Collections.sort(entries, ClassX.compare(ClassX, ClassX));
我很困惑有人可以帮我吗?
最佳答案
要了解发生了什么,请查看classXComparator
的声明:
public static Comparator<ClassX> classXComparator = <something>
这将
classXComparator
声明为类型为static
的Comparator<ClassX>
字段,而该字段正是sort(...)
的第二个参数的类型。因此,sort
的调用应如下所示:Collections.sort(entries, ClassX.classXComparator);