进一步说明“以java-高效方式最后修改文件”

时间:2014-01-29 05:45:27

标签: java arrays sorting

这个问题已经在这里提出过了。它只是对Finding the 3 most recently modified files in a long list of files中提供的解决方案之一的引用。

我尝试在解决方案中添加评论,但我没有足够的声誉点来评论,所以我在这里问。该解决方案提供了一种按上次修改方式对文件进行排序的方法。

public static void sortFilesDesc(File[] files) 
{        
    File firstMostRecent = null;
    File secondMostRecent = null;
    File thirdMostRecent = null;
    for (File file : files) {
        if ((firstMostRecent == null)
                || (firstMostRecent.lastModified() < file.lastModified())) {
            thirdMostRecent = secondMostRecent;
            secondMostRecent = firstMostRecent;             
            firstMostRecent = file;
        } else if ((secondMostRecent == null)
                || (secondMostRecent.lastModified() < file.lastModified())) {
            thirdMostRecent = secondMostRecent;
            secondMostRecent = file;
        } else if ((thirdMostRecent == null)
                || (thirdMostRecent.lastModified() < file.lastModified())) {
            thirdMostRecent = file;
        }
    }
}

该方法将文件数组作为参数,并假设根据上次修改对它们进行排序。 我不明白这个方法是如何修改输入数组,以便对其中的所有元素进行排序。在代码中我们也只更改局部变量fi​​rstMostRecent,secondMostRecent和thirdMostRecent的值。如何修改数组?我的理解可能会遗漏一些东西,但我没有得到它。请澄清我的困惑。

1 个答案:

答案 0 :(得分:0)

未修改输入数组。 这是一个用于查找第1个,第2个和第2个的代码。第3个修改过的文件多数民众赞成。

执行该for循环后,您可以获得前3个最后修改过的文件。