Comment filtrer une liste qui est une valeur d'une entrée de carte dans java 8?

erreur d'exécution

J'ai un Map<B, List<A>>. Je veux filtrer certains A en fonction d'un prédicat qui repose sur la clé de l'entrée de carte de type B.Par exemple, voici ma structure de données:

List<Integer> list1 = Arrays.asList(5,2,3,4);
List<Integer> list2 = Arrays.asList(5,6,7,8);
List<Integer> list3 = Arrays.asList(9,10,11,12,13);
List<Integer> list4 = Arrays.asList(11,23,112);
Map<Long, List<Integer>> map = new HashMap<>();
map.putIfAbsent(2L, list1);
map.putIfAbsent(3L, list2);
map.putIfAbsent(4L, list3);
map.putIfAbsent(5L, list4);

Maintenant, je veux parcourir le entrySet de la carte et créer une nouvelle carte avec une liste contenant les éléments qui est un multiple de la clé de cette entrée. ie La sortie devrait ressembler à ceci:

2L --> List of (2, 4)
3L --> List of (6)
4L --> List of (12)
5L --> empty List

Le prédicat de filtrage utilise la valeur de la clé d'entrée de carte pour tester les éléments de la liste. Comment puis-je y parvenir sans modifier la carte d'origine?

Jason

Voici une façon de résoudre le problème, en diffusant les entrées dans la carte d'origine et en créant une nouvelle carte avec les clés et les listes filtrées:

Map<Long, List<Integer>> newMap = map.entrySet().stream()
        .collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().stream()
                .filter(value -> value % entry.getKey() == 0)
                .collect(Collectors.toList())));

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Java8: comment filtrer une carte de valeur de liste via un flux

Comment insérer une valeur dans une liste qui est déjà dans une liste?

Comment faire une nouvelle liste avec une propriété d'une carte qui est dans une autre liste

Comment collecter une liste d'int à une liste d'entrée dans Java 8

Trier une carte en fonction de la valeur qui est une arraylist java 8

Comment filtrer une table Bootstrap en fonction d'une valeur de liste déroulante dans react

Comment aplatir une liste dans une carte en Java 8

Comment supprimer des valeurs d'une carte dans Terraform qui correspondent à une valeur de clé

Comment puis-je supprimer des chaînes vides d'une liste qui est une valeur d'une clé spécifique dans une liste de dictionnaires?

comment vérifier si une valeur de liste existe dans une valeur de colonne qui est également une liste

Comment effacer le contenu d'une liste qui est à l'intérieur d'une valeur de HashMap en utilisant Java flux 8

Convertir une liste en une carte avec une valeur en tant que liste d'objets dans Java 8

Comment ajouter une nouvelle entrée dans chacun des tuples d'une liste qui est une collection de tuples en erlang?

Java 8 streams Comment filtrer le contenu d'une liste introuvable dans une autre arrayList?

Comment charger une URL qui se trouve dans le widget d'entrée de tkinter qui est liée à l'entrée utilisateur enregistrée d'une liste dans la liste-box?

Comment passer une valeur au contrôleur laravel qui n'est pas dans une entrée de formulaire dans VueJS

Comment convertir une liste d'objets en une carte dans Java 8?

Sélectionnez une valeur dans une liste de colonnes qui est proche d'une autre valeur dans pandas

Comment ajouter des éléments dans une liste qui correspond à une clé d'une carte en Java

Remplacer les valeurs dans une liste de listes à partir d'une carte dans Java 8

Comment convertir / modifier une carte imbriquée dans la liste des cartes lorsqu'un nom d'entrée est trouvé?

Java : une multicarte triée qui est une carte de listes et non une carte d'ensembles

Comment vérifier si une valeur décimale de l'entrée est supérieure à une liste de décimales

Comment diviser une liste de tableaux qui est ensuite sortie dans une liste déroulante

Comment puis-je filtrer une table de données en fonction de l'entrée d'une carte de dépliant dans R Shiny?

Comment filtrer les éléments qui sont dans une liste d'une liste ?

Obtenez les deux nombres dans une liste triée qui sont dans la plage de la valeur d'entrée

Comment filtrer une carte profondément imbriquée dans une liste ?

Comment regrouper des lignes dans une table postgresql qui correspondent à une valeur d'entrée ou à une valeur de l'une des autres lignes correspondantes?

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    obtenir le nombre de marqueur affiché sur la carte

  3. 3

    comment obtenir un objet de requête dans les tests unitaires de django?

  4. 4

    Microsoft.WebApplication.targets

  5. 5

    Comment ajouter un texte dans un texte Python/Tkinter

  6. 6

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  7. 7

    mongo kafka connect source

  8. 8

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  9. 9

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  10. 10

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  11. 11

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  12. 12

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  13. 13

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  14. 14

    Laravel 8: Attempt to read property "id" on null

  15. 15

    définir une propriété pour chaque nœud dans neo4j

  16. 16

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  17. 17

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  18. 18

    Aide de variable de débogage pprint jinja2

  19. 19

    Impossible d'accéder à la vue personnalisée pendant le test de l'interface utilisateur dans XCode

  20. 20

    Impression de la longueur du chemin le plus court dans le labyrinthe

  21. 21

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

chaudétiquette

Archive