[JAVA] Créer une carte de liste avec LazyMap

Convertit les informations des préfectures de la base de données en une carte avec une liste de noms comme valeur, en utilisant la catégorie comme clé. (Je ne sais pas si je l'écris en japonais, mais en bref, je veux convertir List \ <SampleEntity > en Map \ <String, List \ <String > >)

category name
Hokkaido Hokkaido
Région de Tohoku Préfecture d'Aomori
Région de Tohoku Préfecture d'Iwate
Région de Tohoku Préfecture de Miyagi
Région de Tohoku Akita
Région de Tohoku Préfecture de Yamagata
Région de Tohoku Préfecture de Fukushima
Région de Kanto Préfecture d'Ibaraki
Région de Kanto Préfecture de Tochigi
Région de Kanto Préfecture de Gunma
Région de Kanto Saitama
Région de Kanto Préfecture de Chiba
Région de Kanto Tokyo
Région de Kanto Préfecture de Kanagawa

Si vous essayez de le faire normalement, c'est gênant car vous devez brancher entre la première fois (lorsque la liste n'existe pas) et la seconde et les suivantes (lorsque la liste existe) ...

python


Map<String, List<String>> map = new HashMap<String, List<String>>();

for (SampleEntity en : entityList) {
    if (!map.containsKey(en.getCategory()) {
        map.put(en.getCategory(), new ArrayList<String>());
    }
    map.get(en.getCategory()).add(en.getName());
}

Avec LazyMap, vous pouvez écrire si proprement. La déclaration est désordonnée, mais la logique est plus simple.

python


Map<String, List<String>> map = MapUtils.lazyMap(new HashMap<String, List<String>>(),
        InstantiateFactory.instantiateFactory(ArrayList.class, null, null));

for (SampleEntity en : entityList) {
    map.get(en.getCategory()).add(en.getName());
}

System.out.println(map);
/* ===Résultat de sortie===
 * {Hokkaido=[Hokkaido],
 *Région de Tohoku=[Préfecture d'Aomori,Préfecture d'Iwate,Préfecture de Miyagi,Akita,Préfecture de Yamagata,Préfecture de Fukushima],
 *Région de Kanto=[Préfecture d'Ibaraki,Préfecture de Tochigi,Préfecture de Gunma,Saitama,Préfecture de Chiba,Tokyo,Préfecture de Kanagawa]}
 */

Recommended Posts

Créer une carte de liste avec LazyMap
Faites une liste de choses à faire en famille avec Sinatra
Créez un labyrinthe de fouilles avec Ruby2D
Je veux faire une liste avec kotlin et java!
Faire un rappel de garbage avec line-bot-sdk-java
Conversion de liste Java8 avec Stream map
Faites un jeu de frappe avec ruby
Faisons une carte de Noël avec Processing!
[Java] Obtenir des éléments List / Map avec Iterator
Créez quand même une fonction de connexion avec Rails
[docker] [nginx] Créer un ALB simple avec nginx
Liste, ensemble, carte
Tableau / liste / carte
Créer Scala Seq à partir de Java, faire de Scala Seq une liste Java
Faisons une fonction de recherche avec Rails (ransack)
Créer une carte multi-touches avec une bibliothèque standard
Rendre System.out Mock avec Spock Test Framework
[Android] J'ai créé un écran de liste de matériaux avec ListView + Bottom Sheet
Exécutez Scala avec GraalVM et créez-en une image native
[Bases de Java] Créons un triangle avec une instruction for
[Mémo de travail de l'application personnelle] Créez un calendrier avec simple_calendar
Créer un utilitaire de réflexion ②
Créer un utilitaire de réflexion ③
Faisons un Bot LINE avec Ruby + Sinatra - Partie 1
Créer un utilitaire de réflexion ①
[Débutant] Essayez de créer un jeu RPG simple avec Java ①
Je veux créer une fonction avec kotlin et java!
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ① ~ Hello World ~
Apprendre Ruby avec AtCoder 13 Comment créer un tableau à deux dimensions
Faisons une API simple avec EC2 + RDS + Spring boot ①
À propos du comportement lors de la création d'un mappage de fichiers avec Java
Créez un CRUD simple avec SpringBoot + JPA + Thymeleaf ⑤ ~ Modèle commun ~
Manipuler la liste avec java8StreamAPI :: reduction
Les microservices avec DevOps apportent des modifications
[Java] Rendez-le constant
[Rails] Faites une liste de miettes de pain
Faire un diamant en utilisant Java
Une histoire bloquée avec NotSerializableException
Créons une application Web de gestion de livres avec Spring Boot part1
Je veux créer un bouton avec un saut de ligne avec link_to [Note]
Comment créer un fichier jar sans dépendances dans Maven
Créons une application Web de gestion de livres avec Spring Boot part3
Tri d'une liste avec un tableau de type int comme élément (Java) (Comparator)
Faisons une application multiplateforme avec JRuby (génération de fichier jar)
Créons une application Web de gestion de livres avec Spring Boot part2
Créer un compilateur C à utiliser avec Rust x CLion avec Docker
Vérifiez avec Mockito si la méthode a été appelée lorsque Carte → Liste (quand, vérifier)
J'ai essayé de créer une fonction de groupe (babillard) avec Rails