如何基于日期列按升序对二维数组进行排序

时间:2014-03-06 07:14:54

标签: java comparator date-sorting

import java.util.Comparator;
import java.util.Date;

//Class  that returns a string columnn in ascending order

public class DateCompare implements Comparator {

    int columnToSort;
    DateCompare(int columnToSort) {
        this.columnToSort = columnToSort;
    }

    //overriding compare method
    public int compare(Object o1, Object o2) {
        Date[] row1 = (Date[]) o1;
        Date[] row2 = (Date[]) o2;
        //compare the columns to sort
        return row1[columnToSort].compareTo(row2[columnToSort]);
    }
}

我的2-D阵列存储电话名称及其制造日期。 朋友们,我创建了一个名为DateCompare的类,它根据存储日期的列对2-D记录数组进行排序。 这没有给出所需的输出。任何人都可以纠正这个或提供更好的替代解决方案,因为我无法在任何网站上找到明确的答案? 提前致谢!!!

输入(例如):

Samsung                   01/01/2014
iphone                    09/02/2006
Motorola                  16/06/2009

输出:

iphone                    09/02/2006
Motorola                  16/06/2009
Samsung                   01/01/2014

1 个答案:

答案 0 :(得分:0)

为什么是2D数组,为什么不编写一个类来以结构化的方式保存数据?

public class MyTuple implements Comparable<Date> 
{
    String phone;
    Date date;

    @Override 
    public int compareTo( Date d )
    {
         return d.compareTo( this.date );
    }
}

并使用List<MyTuple>而不是数组?我相信Joachim Sauer在这个网站上教给我一个“对象拒绝”这个词,这是一个很好的例子: - )

干杯,