自定义对象的排序列表包含java中从最新到最旧的日期

时间:2014-01-06 08:47:11

标签: java sorting

我有自定义对象包含Date,我动态创建并填充数据(名称,日期等等)并添加到列表中并在将所有对象添加到列表后我想根据日期对列表进行排序自定义对象(从LATEST到OLDEST)。 我如何用Java实现它?

请通过一些示例示例向我提供解决方案。

感谢。

4 个答案:

答案 0 :(得分:1)

要查找2个日期之间的差异,您可以比较这些值。隐藏日期为值(长)而不是比较而不是使用算术运算,如减法等        公共类CompareObjects实现Comparator {

@Override
public int compare(classA c1, classA c2) {
    long value1 = c1.getDate().getTime();
    long value2 = c2.getDate().getTime();
    if (value2 > value1) {
        return 1;
    } else if (value1 > value2) {
        return -1;
    } else {
        return 0;
    }
}

public static void main(String[] args) {
    classA o1 = new classA();
    o1.setDate(new Date());

    classA o2 = new classA();
    o2.setDate(new Date());
    CompareObjects compare = new CompareObjects();
    int i = compare.compare(o1, o2);
    System.out.println(" Result : " + i);

}

}

或者不进行转换,您可以直接返回结果。

返回c2.getDate()。compareTo(c1.getDate());

比较后,您可以使用Collection.sort方法设置顺序。

答案 1 :(得分:0)

您需要实现自定义Comparator或实现Comparable。

有关详细信息,请参阅此处。

http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html

http://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html

以下是使用其中任何一个的一些示例。

http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

答案 2 :(得分:0)

您可以使用自定义Comparator,然后使用Collections.sort(collection, yourComparatorInstance);

查看

答案 3 :(得分:0)

第一个位置为null,然后从最旧的到最新的:

Collections.sort(myList, new Comparator<MyBean>() {
        public int compare(MyBean b1, MyBean b2) {
            if (b1 == null || b1.getMyDate() == null) {
                return -1;
            }
            if (b2 == null || b2.getMyDate() == null) {
                return 1;
            }
            return b1.getMyDate().compareTo(b2.getMyDate());
        }
    });