Comment faire pour supprimer des éléments d'une liste avec lambda basée sur une autre liste

J'ai la Liste des Chemins d'accès de fichier: .

List<Path> filePaths; //e.g. [src\test\resources\file_exampleFile.pdf]

54 ci-dessus fait référence à l'ID de fichier

Je puis obtenir un Set de String Id qui mon application peut gérer comme suit:

Set<String> acceptedIds = connection.getAcceptedIDs(); //e.g. elements [64, 101, 33]

Comment puis-je utiliser Java 8 lambdas à filter tous les éléments dans filePaths qui ne contiennent pas de l'Id qui sont contenues dans acceptedIds Jeu d'éléments de collecte.

En d'autres termes, je tiens à conserver dans filePaths que les chemins que les id qui sont dans acceptedIds ensemble. Par exemple, 54 n'est pas dans la liste ci-dessus est donc supprimé.

filePaths.stream().filter(...).collect(Collectors.toList());
  • Peut-on s'appuyer sur le répertoire parent d'être nommé avec l'ID?
  • filePaths.removeIf(p -> !acceptedIds.contient(p.getPath())
InformationsquelleAutor M06H | 2015-09-01