的發展我有我開發了一個POJO查詢..對於比較
public class Customer {
int Age;
public Customer(int age, String surname, String forename) {
super();
Age = age;
Surname = surname;
Forename = forename;
}
String Surname,Forename;
public int getAge() {
// TODO Auto-generated method stub
return Age;
}
public String getSurname() {
// TODO Auto-generated method stub
return Surname;
}
public String getForename() {
// TODO Auto-generated method stub
return Surname;
}
public void display()
{
// System.out.println(Forename+"\t"+Surname+"\t"+Age);
System.out.println(Age+"\t"+Forename+"\t"+Surname);
}
}
,這裏是我的集合類..
class testCustomerComparator
{
public static void main(String... a)
{
Customer customerFirst = new Customer(46,"Alabama", "Christonson");
Customer customerSecond = new Customer(21, "Anna", "Sobek");
Customer customerThird = new Customer(27, "Rafael", "Sobek");
List<Customer> list = new ArrayList<Customer>();
list.add(customerThird);
list.add(customerSecond);
list.add(customerFirst);
}
}
請告訴我如何爲這個班級製作課程,我想製作一個比較表,以便客戶列表按年齡排序,其次是姓氏排序。之後,你想按名排序。請指教我有嵌套條件裏面比較
邏輯必須是這樣的......
public class CustomerComparator implements Comparator<Customer> {
@Override
public int compare(Customer c1, Customer c2) {
if (c1.getAge() == c2.getAge()) {
if (c1.getSurname().compareTo(c2.getSurname()) == 0) {
return c1.getForename().compareTo(c2.getForename()) {
} else {
return c1.getSurname().compareTo(c2.getSurname());
}
} else if (c1.getAge() > b2.getAge()) {
return -1;
} else {
return 1;
}
}
,但它不能正常工作,請告知
如果您使用的是Java 1.6以上,這可能是值得註釋與'@ Override'的'compare'方法,這樣你,如果你的方法沒有實現相應的方法簽名會得到一個編譯時錯誤。 – oconnor0
是,編輯,謝謝 – Jack
oconnor0:你已經把1和-1混在一起了。合同中說:「第一個參數小於,等於或大於第二個參數時,爲負整數,零或正整數。」值得注意的是,「負整數」和「正整數」,而不是完全-1和1.我想這是爲了方便比較數值(簡單的減法,而不是一個大的if語句) – Matt