因此,数组将采用以下格式:
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]
。但是,这似乎效率很低而且笨拙,我怀疑我缺少一些简单的技巧。
最佳答案
一个(简单的)解决方案是为数组中的第一个元素分配一个最小值,然后从第二个元素迭代到最后一个,将每个值与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