使用2个条件对Java中的列表进行排序
我有一个对象列表。每个对象都包含a String
和a Date
(以及其他)。
我想先按排序String
,然后按排序Date
。
如何以最干净的方式做到这一点?
谢谢!
马耳他
回答:
给定一个对象类,如下所示:
public class MyObject { public String getString() { ... }
public Date getDate() { ... }
...
}
编写一个自定义比较器类,如下所示:
public class ObjectComparator implements Comparator{ public int compare(Object obj1, Object obj2) {
MyObject myObj1 = (MyObject)obj1;
MyObject myObj2 = (MyObject)obj2;
stringResult = myObj1.getString().compareTo(myObj2.getString());
if (stringResult == 0) {
// Strings are equal, sort by date
return myObj1.getDate().compareTo(myObj2.getDate());
}
else {
return stringResult;
}
}
}
然后排序如下:
Collections.sort(objectList, new ObjectComparator());
以上是 使用2个条件对Java中的列表进行排序 的全部内容, 来源链接: utcz.com/qa/405522.html