这个问题已经在这里提出过了。它只是对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;
}
}
}
该方法将文件数组作为参数,并假设根据上次修改对它们进行排序。 我不明白这个方法是如何修改输入数组,以便对其中的所有元素进行排序。在代码中我们也只更改局部变量firstMostRecent,secondMostRecent和thirdMostRecent的值。如何修改数组?我的理解可能会遗漏一些东西,但我没有得到它。请澄清我的困惑。
答案 0 :(得分:0)
未修改输入数组。 这是一个用于查找第1个,第2个和第2个的代码。第3个修改过的文件多数民众赞成。
执行该for
循环后,您可以获得前3个最后修改过的文件。