pri*_*inn 25 java sorting collections comparable
我有一个类,我已经用一个属性对它进行排序.现在我需要做另一件事,我需要创建另一种方法来对数据进行排序.我该怎么做,所以我可以在两种方法之间做出选择.我知道的唯一命令是Collections.sort,它将从我想要比较其数据的类中获取方法compareTo.
它甚至可能吗?
jjn*_*guy 62
您需要做的是实现自定义Comparator.然后使用:
Collections.sort(yourList, new CustomComparator<YourClass>());
Run Code Online (Sandbox Code Playgroud)
具体来说,您可以编写:(这将创建一个实现的Anonymous类Comparator.)
Collections.sort(yourList, new Comparator<YourClass>(){
public int compare(YourClass one, YourClass two) {
// compare using whichever properties of ListType you need
}
});
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以将它们构建到您的课程中:
class YourClass {
static Comparator<YourClass> getAttribute1Comparator() {
return new Comparator<YourClass>() {
// compare using attribute 1
};
}
static Comparator<YourClass> getAttribute2Comparator() {
return new Comparator<YourClass>() {
// compare using attribute 2
};
}
}
Run Code Online (Sandbox Code Playgroud)
它可以像这样使用:
Collections.sort(yourList, YourClass.getAttribute2Comparator());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24933 次 |
| 最近记录: |