Java 8 流过滤和分组使用相同的昂贵方法调用
2022-09-04 01:05:21
我正在寻找一种以干净的方式优化处理的方法。Stream
我有这样的东西:
try (Stream<Path> stream = Files.list(targetDir)) {
Map<String, List<Path>> targetDirFilteredAndMapped = stream.parallel()
.filter(path -> sd.containsKey(md5(path)))
.collect(Collectors.groupingBy(path -> md5(path)));
} catch (IOException ioe) { // manage exception }
由于该函数非常昂贵,我想知道是否有一种方法可以为每个文件仅调用一次。md5
有什么建议吗?