我有一个类,我已经按一个属性对其进行了排序。
现在我需要做另一件事,我需要创建另一种方法来对数据进行排序。
我该怎么做呢,所以我可以选择两种方法。
我知道的唯一命令是 Collections.sort ,它将从我想要比较其数据的类中获取方法compareTo。
有可能吗?
您需要做的是实施自定义Comparator http://download.oracle.com/javase/6/docs/api/java/util/Comparator.html。然后使用:
Collections.sort(yourList, new CustomComparator<YourClass>());
具体来说,您可以编写:(这将创建一个实现Comparator
.)
Collections.sort(yourList, new Comparator<YourClass>(){
public int compare(YourClass one, YourClass two) {
// compare using whichever properties of ListType you need
}
});
如果您愿意,您可以将它们构建到您的班级中:
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
};
}
}
它可以像这样使用:
Collections.sort(yourList, YourClass.getAttribute2Comparator());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)