如何根据两个参数对对象列表进行排序以在Java上进行比较?
|
我有一个这样的课:
public class Zern extends Something{
private int costA;
private int costB;
public int getcostA() {
return costA;
}
public void setcostA(int costA) {
this.costA = costA;
}
public int getcostB() {
return costB;
}
public void setcostB(int costB) {
this.costB = costB;
}
}
我有一个包含此类对象的列表:
private List<Zern> zerns = new ArrayList<Zern>(MAX_ZERN_SIZE);
我将新对象添加到我的列表中,但是我始终希望根据成本a有一个有序列表,如果列表中有一个对象与我要添加的对象具有相同的成本,我想根据该对象添加该对象他们的成本
我的意思是:
Index of objects at list 0 1 2 3 4 5
CostA 10 15 22 22 25 36
CostB 26 12 17 19 23 44
If I want to add an object that has a costA 22 and costB 18,
it will locate at index 3.
如何使用Comparator或类似方法有效地做到这一点(因为我将一个对象添加到排序列表中,这意味着我可以使用二进制搜索-如果可能我想根据此找到解决方案)?
没有找到相关结果
已邀请:
2 个回复
视蕉梁拌客
与以下比较器一起使用:
更新:如果您不需要对项目进行索引访问,则可能首先需要使用自定义比较器的排序集实现:
现在可以添加对象,并且您的集合将始终保持排序状态(注意:我在Zern类中添加了一个构造函数和toString):
您可以删除一个项目
或删除成本最低的项目
或通过以下方式获得成本最高的商品
降女陷费券