使用嵌套在另一个类中的类中定义的比较器实现Collections.sort

我有一个特定的类,我们称之为ClassX。 ClassX是一个简单的小班;它有几个数据成员,一个构造函数和一个嵌套类(不太简单)。嵌套类是专门用于定义一个比较,而这种写法:使用嵌套在另一个类中的类中定义的比较器实现Collections.sort

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是我的项目的主要类,并且有一个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> 

这声明classXComparatorComparator<ClassX>类型的static领域,这恰恰是sort(...)第二个参数的类型。因此,调用sort应该如下:

Collections.sort(entries, ClassX.classXComparator); 

以上是 使用嵌套在另一个类中的类中定义的比较器实现Collections.sort 的全部内容, 来源链接: utcz.com/qa/259425.html

回到顶部