我有包含属性类对象的列表,在列表中我有3个状态
> not_paid
>有偿
> part_paid
我想按下面提到的顺序对我的列表进行排序.
首先 – not_paid
?second-part_paid
?第三次付清
如何使用Comparator类对列表进行排序.
public static Comparator COMPARE_BY_PAYMENT = new Comparator() {
public int compare(OrderHistoryItemData one, OrderHistoryItemData other) {
String p1 = one.getAttributes().getFieldPaymentStatus();
String p2 = other.getAttributes().getFieldPaymentStatus();
if (p1.equals(p2)) {
return 0;
}
if (p1.equals("not_paid") && (p2.equals("part_paid") || p2.equals("not_paid"))) {
return -1;
}
if (p1.equals("not_paid") && p2.equals("not_paid")) {
return -1;
}
return 1;
}
};
这是我的代码.我使用此代码获得低于订单.
支付 – > not_paid – > part_paid
这是我的更新代码.我得到了我的结果.
public static Comparator COMPARE_BY_PAYMENT = new Comparator() {
public int compare(OrderHistoryItemData one, OrderHistoryItemData other) {
String p1 = one.getAttributes().getFieldPaymentStatus();
String p2 = other.getAttributes().getFieldPaymentStatus();
if (p1.equals(p2)) {
return 0;
}
if (p1.equals("not_paid") && (p2.equals("part_paid") || p2.equals("paid"))) {
return -1;
}
if (p1.equals("part_paid") && p2.equals("paid")) {
return -1;
}
return 1;
}
};