Mam listę ścieżek plików:.Jak usunąć elementy z listy z lambda na podstawie innej listy
List<Path> filePaths; //e.g. [src\test\resources\file\15\54\54_exampleFile.pdf]
54
powyżej odnosi się do pliku identyfikatora
I wtedy otrzymać Set
od String
identyfikatorów, które moja aplikacja może obsługiwać w następujący sposób:
Set<String> acceptedIds = connection.getAcceptedIDs(); //e.g. elements [64, 101, 33]
jaki sposób można użyć Java 8 lambdy do filter
zewnątrz wszystkie elementy w filePaths
, które nie zawierają żadnych akceptowanych identyfikatorów, które są zawarte w zestawie kolekcji acceptedIds
.
Innymi słowy, chciałbym zachować w filePaths
tylko te ścieżki, które mają identyfikatory, które są w zestawie acceptedIds
. Na przykład 54 nie ma na powyższej liście, więc jest usuwany.
filePaths.stream().filter(...).collect(Collectors.toList());
Czy możemy polegać na bezpośrednim katalogu nadrzędnym o nazwie o identyfikatorze? – Bohemian
filePaths.removeIf (p ->! AcceptedIds.contains (p.getPath()) –