2017-12-03 246 views
1

我有一个特定的类,我们称之为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));

我难倒。有人可以帮我吗?

回答

1

,了解哪些在classXComparator声明发生的样子:

public static Comparator<ClassX> classXComparator = <something> 

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

Collections.sort(entries, ClassX.classXComparator); 
相关问题