使用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

回到顶部