因此,数组的格式为:
String[][] resultsArray = new String[][] {
{ X, Y, "2014-10-22 12:00", Z},
{ X, Y, "2014-10-24 12:00", Z},
{ X, Y, "2014-10-26 12:00", Z},
};
从此我需要找回最早的日期。
我已经有一个循环用于循环遍历数组中每个项目的另一个目的,所以我打算重用它。它的格式为:
for (int i=0; i < resultsArray.length; i++) {
result += resultsArray[i][1] + "text" + resultArray[i][2];
}
我目前的想法是在每次迭代时将数组中的日期值添加到新数组(dateArray)中,然后调用Arrays.sort(dateArray)
并抓取dateArray[0]
。
然而,这看起来非常低效且笨拙,我怀疑我错过了一些简单的伎俩。
答案 0 :(得分:4)
一个(简单)解决方案是将min值分配给数组中的第一个元素,然后从第二个元素到最后一个元素进行迭代,将每个值与min
进行比较(由于您的日期格式,您可以使用词汇排序)。像,
String min = resultsArray[0][2];
for (int i=1; i < resultsArray.length; i++) {
if (resultsArray[i][2].compareTo(min) < 0) {
min = resultsArray[i][2];
}
}
System.out.println(min);
输出
2014-10-22 12:00
答案 1 :(得分:2)
不像Elliott那样优雅,特别是因为resultsArray被sort方法改变了,但我认为在这里显示另一种选择
String[][] resultsArray = new String[][] {
{ "X2", "Y2", "2014-10-24 12:00", "Z2"},
{ "X1", "Y1", "2014-10-22 12:00", "Z1"},
{ "X0", "Y1", "2014-10-26 12:00", "Z0"},
};
Arrays.sort(resultsArray, new Comparator<String[]>(){
@Override
public int compare(String[] o1, String[] o2) {
return o1[2].compareTo(o2[2]);
}
});
System.out.println(resultsArray[0][2]);