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]);
}
}
我的二维数组存储手机的名称及其制造日期。 朋友们,我做了一个名为DateCompare的类,它根据存储日期的列对二维数组进行排序。 这没有给出所需的输出。任何人都可以纠正这个问题,或者提供一个更好的替代解决方案,因为我无法在任何网站上找到明确的答案? 在此先感谢!如何根据日期列升序对二维数组进行排序
输入(例如):
Samsung 01/01/2014
iphone 09/02/2006
Motorola 16/06/2009
输出:
iphone 09/02/2006
Motorola 16/06/2009
Samsung 01/01/2014
我怎么没看到“三星”可能是在'日期[]'。向我们展示如何声明变量以及如何使用比较器。并使用泛型:如果你想对香蕉进行分类,比较器应该实现'Comparator'。另外,你不应该使用数组来存储信息。你应该有一个'List ',其中'Phone'是一个具有'name'和'date'字段的类。 –
为什么不使用现有的jdk metods? java.util.Arrays.sort(Object [])对可比对象数组排序 – agad
@agad:数组不具有可比性。要对它们进行排序,请使用Arrays.sort()并传递一个比较器。以上代码是比较器。 –