我有一个特定的课程,我们称之为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是我项目的主类,并且有一个名为entries的ClassXs的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));
我很难过。有人可以帮助我吗?
答案 0 :(得分:1)
要了解正在发生的事情,请查看classXComparator
:
public static Comparator<ClassX> classXComparator = <something>
这会将classXComparator
声明为static
类型的Comparator<ClassX>
字段,这正是sort(...)
的第二个参数的类型。因此,sort
的调用应如下:
Collections.sort(entries, ClassX.classXComparator);