因此,数组将采用以下格式:

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

07-26 05:02