[JAVA] Erstellen Sie eine Listenkarte mit LazyMap

Konvertiert die Informationen von Präfekturen in der Datenbank in eine Karte mit einer Liste von Namen als Wert, wobei die Kategorie als Schlüssel verwendet wird. (Ich weiß nicht, ob ich es auf Japanisch schreibe, aber kurz gesagt, ich möchte List \ <SampleEntity > in Map \ <String, List \ <String > > konvertieren.)

category name
Hokkaido Hokkaido
Tohoku Region Präfektur Aomori
Tohoku Region Präfektur Iwate
Tohoku Region Präfektur Miyagi
Tohoku Region Akita
Tohoku Region Präfektur Yamagata
Tohoku Region Präfektur Fukushima
Kanto Region Präfektur Ibaraki
Kanto Region Präfektur Tochigi
Kanto Region Präfektur Gunma
Kanto Region Saitama
Kanto Region Präfektur Chiba
Kanto Region Tokio
Kanto Region Präfektur Kanagawa

Wenn Sie versuchen, dies normal zu tun, ist dies problematisch, da Sie zwischen dem ersten Mal (wenn die Liste nicht vorhanden ist) und dem zweiten und den folgenden Zeitpunkt (wenn die Liste vorhanden ist) verzweigen müssen ...

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());
}

Mit LazyMap können Sie so ordentlich schreiben. Die Deklaration ist chaotisch, aber die Logik ist einfacher.

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);
/* ===Ausgabeergebnis===
 * {Hokkaido=[Hokkaido],
 *Tohoku Region=[Präfektur Aomori,Präfektur Iwate,Präfektur Miyagi,Akita,Präfektur Yamagata,Präfektur Fukushima],
 *Kanto Region=[Präfektur Ibaraki,Präfektur Tochigi,Präfektur Gunma,Saitama,Präfektur Chiba,Tokio,Präfektur Kanagawa]}
 */

Recommended Posts

Erstellen Sie eine Listenkarte mit LazyMap
Erstellen Sie mit Sinatra eine Familien-ToDo-Liste
Machen Sie mit Ruby2D ein Labyrinth
Ich möchte eine Liste mit Kotlin und Java erstellen!
Machen Sie eine Müllabfuhr mit line-bot-sdk-java
Java8-Listenkonvertierung mit Stream Map
Machen Sie ein Tippspiel mit Ruby
Machen wir eine Weihnachtskarte mit Verarbeitung!
[Java] Listen- / Kartenelemente mit Iterator abrufen
Erstellen Sie trotzdem eine Anmeldefunktion mit Rails
[Docker] [Nginx] Erstellen Sie mit Nginx eine einfache ALB
Liste, Set, Karte
Array / Liste / Karte
Erstellen Sie Scala Seq aus Java, machen Sie Scala Seq zu einer Java-Liste
Lassen Sie uns eine Suchfunktion mit Rails (Ransack) machen
Erstellen Sie eine Mehrschlüsselkarte mit einer Standardbibliothek
Machen Sie System.out Mock mit dem Spock Test Framework
[Android] Ich habe mit ListView + Bottom Sheet einen Materiallistenbildschirm erstellt
Führen Sie Scala mit GraalVM aus und machen Sie es zu einem nativen Image
[Java-Grundlagen] Lassen Sie uns ein Dreieck mit einer for-Anweisung erstellen
[Arbeitsnotiz für persönliche Anwendungen] Erstellen Sie einen Kalender mit simple_calendar
Erstellen Sie ein Reflexionsprogramm ②
Erstellen Sie ein Reflexionsprogramm ③
Machen wir einen LINE Bot mit Ruby + Sinatra - Teil 1
Erstellen Sie ein Reflexionsprogramm ①
[Anfänger] Versuchen Sie, mit Java ein einfaches RPG-Spiel zu erstellen ①
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Erstellen Sie mit SpringBoot + JPA + Thymeleaf ein einfaches CRUD ~ ~ Hallo Welt ~
Ruby mit AtCoder lernen 13 So erstellen Sie ein zweidimensionales Array
Erstellen wir eine einfache API mit EC2 + RDS + Spring Boot ①
Informationen zum Verhalten beim Erstellen einer Dateizuordnung mit Java
Erstellen Sie eine einfache CRUD mit SpringBoot + JPA + Thymeleaf ⑤ ~ Common template ~
Liste mit java8StreamAPI :: reduzieren bearbeiten
Microservices mit DevOps nehmen Änderungen vor
[Java] Mach es konstant
[Schienen] Machen Sie eine Brotkrumenliste
Machen Sie einen Diamanten mit Java
Eine Geschichte, die bei NotSerializableException steckt
Erstellen wir eine Buchverwaltungs-Webanwendung mit Spring Boot part1
Ich möchte mit link_to [Hinweis] eine Schaltfläche mit einem Zeilenumbruch erstellen.
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
Lassen Sie uns mit Spring Boot part3 eine Webanwendung für die Buchverwaltung erstellen
Sortieren einer Liste mit einem Array vom Typ int als Element (Java) (Comparator)
Versuchen Sie, mit JRuby eine plattformübergreifende Anwendung zu erstellen (Generierung von JAR-Dateien).
Lassen Sie uns mit Spring Boot part2 eine Webanwendung für die Buchverwaltung erstellen
Erstellen Sie einen C-Compiler zur Verwendung mit Rust x CLion mit Docker
Überprüfen Sie mit Mockito, ob die Methode aufgerufen wurde, als Map → List (wann, verifizieren)
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen