有人可以帮我将以下语句转换为 Java8:
我有一个这样的哈希图:
private Map<String, Pair<List<XYZFiles>, List<XYZFiles>>> someMap;
Run Code Online (Sandbox Code Playgroud)
我想在java8中转换以下逻辑:
private String searchFiles(String transmittedFileId) {
for (Pair<List<XYZFiles>, List<XYZFiles>> pair : someMap.values()) {
List<XYZFiles> createdFilesList = pair.getKey();
Optional<XYZFiles> xYZFiles= createdFilesList.stream()
.filter(file ->
file.getId().endsWith(transmittedFileId)).findFirst();
if (xYZFiles.isPresent()) {
return xYZFiles.get().getOriginId();
}
}
}
Run Code Online (Sandbox Code Playgroud)
return someMap.values().stream()
.map(Pair::getKey)
.flatMap(List::stream)
.filter(file ->
file.getId().endsWith(transmittedFileId)
).findFirst().map(XYZFiles::getOriginId).orElse(null);
Run Code Online (Sandbox Code Playgroud)
我认为应该这样做。它基本上是做平面地图,将所有这些列表扁平化成一个大流,并filter完成整个事情。
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |