【发布时间】:2015-09-01 15:20:26
【问题描述】:
我有文件路径列表:.
List<Path> filePaths; //e.g. [src\test\resources\file\15\54\54_exampleFile.pdf]
上面的54指的是文件ID
然后我获得String 的Set Id,我的应用程序可以按如下方式处理:
Set<String> acceptedIds = connection.getAcceptedIDs(); //e.g. elements [64, 101, 33]
我如何使用 Java 8 lambdas 将 filter 中的所有元素排除在 filePaths 中,这些元素不包含 acceptedIds 集合 Set 中包含的任何可接受的 Id。
换句话说,我只想在filePaths 中保留ID 位于acceptedIds 中的路径。例如,54 不在上面的列表中,因此被删除。
filePaths.stream().filter(...).collect(Collectors.toList());
【问题讨论】:
-
我们可以依赖以 ID 命名的直接父目录吗?
-
filePaths.removeIf(p -> !acceptedIds.contains(p.getPath())
标签: java lambda java-8 java-stream