使用2个条件在Java中对列表进行排序 [英] Sorting a list in Java using 2 criteria
本文介绍了使用2个条件在Java中对列表进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个对象列表。每个对象包含 String
和 Date
(以及其他)。
I have a list of objects. Each object contains a String
and a Date
(amongst others).
我想首先按字符串
排序,然后按日期$排序C $ C>。
I want to first sort by the String
and then by the Date
.
怎样才能以最干净的方式完成?
How could this be done in the cleanest way possible?
谢谢!
Krt_Malta
Krt_Malta
推荐答案
给定一个如下所示的对象类:
Given an object class that looks like this:
public class MyObject {
public String getString() { ... }
public Date getDate() { ... }
...
}
写一个自定义比较器类如下:
Write a custom comparator class like so:
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中对列表进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文