Java 如何将文件对象列表转换为路径对象列表?

Java how to convert List of File objects to List of Path objects?

我正在构建一个用户已经拥有处理路径数组的代码的库。 我有这个:

Collection<File> filesT = FileUtils.listFiles(
            new File(dir), new RegexFileFilter(".txt$"), 
            DirectoryFileFilter.DIRECTORY
          );

我始终使用 File 对象列表,但需要一种方法将 filesT 转换为 List。 有没有一种快速的方法,也许是 lambda 可以将一个列表快速转换为另一个列表?

如果您有 Collection<File>,您可以使用 File::toPath 方法参考将其转换为 List<Path>Path[]

public List<Path> filesToPathList(Collection<File> files) {
    return files.stream().map(File::toPath).collect(Collectors.toList());
}

public Path[] filesToPathArray(Collection<File> files) {
    return files.stream().map(File::toPath).toArray(Path[]::new);
}

我同意 Alex Rudenko 的回答,但是 toArray() 需要转换。我提出了一个替代方案(我将如何实现,返回不可变集合):

Set<Path> mapFilesToPaths(Collection<File> files) {
    return files.stream().map(File::toPath).collect(Collectors.toUnmodifiableSet());
}