JAVA:如何获取目录中的前N个SORTED条目?

时间:2019-03-29 16:03:42

标签: java file sorting io

我最多需要检索N个条目。

我需要按名称对条目进行排序(目录优先)。

我想使用Files.newDirectoryStream()而不是File.listFiles()来避免创建可能很大的列表(并有一种方法来阻止它,以防文件数量很大)。 / p>

最有效的方法是什么?我想我需要遍历整个流并保留一个有界的排序列表,以仅保留N个条目。

谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 创建空的ArrayList<File>
  2. 遍历目录条目并将其放入列表,直到它包含M个元素或读取了所有条目(M >> N)
  3. 使用quickselect算法将前N个条目移至列表的开头
  4. 修剪列表到N个元素
  5. 重复步骤2-4,直到所有条目都读完
  6. 对列表进行排序