Java:高效列表排序
我有一个Java:高效列表排序,java,sorting,comparable,Java,Sorting,Comparable,我有一个列表,其中包含数量可变的对象(通常超过1000个)。这些对象具有某些属性,例如price和distance(都是int) 现在,我希望能够将列表从最便宜到最昂贵或从最近到最远排序,但我不知道如何实现这一点。我已经尝试过让我的对象实现可比性,但这只允许我按其中一个属性排序。。。如何根据不同的属性进行排序?创建的两个不同实现-一个用于比较价格,另一个用于比较距离 然后,您可以使用任意排序策略对列表进行排序。您应该只使用集合。排序(…)并为每种排序类型(例如,按价格)实现自定义比较器 Coll
列表
,其中包含数量可变的对象(通常超过1000个)。这些对象具有某些属性,例如price和distance(都是int)
现在,我希望能够将
列表
从最便宜到最昂贵或从最近到最远排序,但我不知道如何实现这一点。我已经尝试过让我的对象实现可比性
,但这只允许我按其中一个属性排序。。。如何根据不同的属性进行排序?创建的两个不同实现-一个用于比较价格,另一个用于比较距离
然后,您可以使用任意排序策略对列表进行排序。您应该只使用
集合。排序(…)
并为每种排序类型(例如,按价格)实现自定义比较器
Collections.sort(effizientObjects, new Comparator<EffizientObject>() {
@Override public int compare(EffizientObject p1, EffizientObject p2) {
return p1.price- p2.price;
}
});
Collections.sort(effizientObjects,newcomparator()){
@覆盖公共整数比较(EffizientObject p1、EffizientObject p2){
返回p1.price-p2.price;
}
});
到目前为止,我们唯一能看出的错误是您没有发布代码。相关/类似:注意:您应该使用(或Double.compare
,或任何类型)来比较数值,而不是减法,以避免溢出。