我有如下的比較邏輯定製的比較:比較器compare()如何在下面實現的方法內部工作?
List<String> l = new ArrayList<String>();
l.add("tendercoupon");
l.add("giftcard");
l.add("creditCard");
l.add("tendercoupon");
l.add("giftcard");
System.out.println(l);
Comparator<String> PAYMENT_METHODS = new Comparator<String>() {
@Override
public int compare(String r1, String r2) {
if("tendercoupon".equalsIgnoreCase(r1)){
return 1;
}else if("tendercoupon".equalsIgnoreCase(r2)){
return -1;
}if("paypal".equalsIgnoreCase(r1)){
return -1;
}else if("paypal".equalsIgnoreCase(r2)){
return 1;
}else{
return r1.compareTo(r2);}
}
};
Collections.sort(l, PAYMENT_METHODS);
System.out.println(l);
爲這是輸出:[信用卡式,禮金券,禮金券,tendercoupon,tendercoupon]。
我無法理解它是如何對內部方法進行排序的?
很容易理解,如果你把調試點和檢查。 – rathna