[JAVA] Gelernter Stream (Ich möchte List in Map <Integer, List> konvertieren)

Konvertieren Sie Daten im Format List in das Format Map <yyy, List >

Ich habe es bisher ehrlich verwendet, also mach dir eine Notiz.

Listenformatdaten aus der Datenbank Nach dem Filtern habe ich es verwendet, als ich es in das Kartenformat konvertieren wollte (es war einfacher, es mit jsp anzuzeigen).

List<myClass> resList = myClassDao.query(insMap);

//Filtern
List<myClass> dataList = resList.stream()
        .filter(c -> c.getHogeId() != null)
        .collect(Collectors.toList());

//In Karte konvertieren
Map<Integer, List<myClass>> res = dataList.stream().collect(
        Collectors.groupingBy(myClass::getHogeId)
);

Damit Daten wie diese

[
    {
        id:1,
        hogeId:1,
        data:"a"
    },
    {
        id:2,
        hogeId:1,
        data:"b"
    },
    {
        id:3,
        hogeId:2,
        data:"c"
    },
    {
        id:4,
        hogeId:null,
        data:"d"
    }
]

Es wird so sein. Vielleicht.

{
    1:[
        {
            id:1,
            hogeId:1,
            data:"a"
        },
        {
            id:2,
            hogeId:1,
            data:"b"
        }
    ],
    2:[
        {
            id:3,
            hogeId:2,
            data:"c"
        }
    ]
}

Bitte lassen Sie mich wissen, ob es einen besseren Weg gibt!

Recommended Posts

Gelernter Stream (Ich möchte List in Map <Integer, List> konvertieren)
Ich möchte Zeichen konvertieren ...
[Java] Konvertiere 1 in N Liste in Karte
Beispielcode zum Konvertieren von List in List <String> in Java Stream
[Java] Ich möchte ein Byte-Array in eine Hexadezimalzahl konvertieren
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich möchte die Liste der Klassen unter dem Paket rekursiv durchsuchen
Für Java-Anfänger: Liste, Karte, Iterator / Array ... Wie konvertiere ich?
Karte <K, V1> in Karte <K, V2> konvertieren (Kartenwert konvertieren)
[Kleine Geschichte] Stream in Iterable konvertieren
Java8-Listenkonvertierung mit Stream Map
Glassfish Tuning List, die ich vorerst behalten möchte
Ich möchte Group By-Verarbeitung mit Stream durchführen (Group-by-Count, Group-by-Sum, Group-by-Max).
Ich möchte eine Webanwendung entwickeln!
Ich möchte doppelte Fehlermeldungen beseitigen
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Ich möchte einen Unit Test schreiben!
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich habe versucht, die Stream-API zusammenzufassen
Ich möchte Java-Updates insgesamt stoppen
Ich möchte @Autowired in Servlet verwenden
Ich möchte statische Felder auf @Autowired ausrichten
Ich möchte die Teamentwicklung aus der Ferne durchführen
R von Java ausführen Ich möchte rJava ausführen
[Swift] Ich möchte Gitterlinien (Quadrate) zeichnen.
Ich möchte eine E-Mail in Java senden.
Ich möchte von npm richtig abschließen [2020]
[Ruby] Ich möchte einen Methodensprung machen!
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte den Inhalt der Absicht var_dump
Ich möchte APP_HOME an Logback in Gradle übergeben
Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
rsync4j - Ich möchte rsync in Java berühren.
Konvertieren Sie Json so wie es ist in List <T>
Ich möchte mit Firestore von Rails spielen
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte schnell von Java nach SQLite schreiben
Ich möchte nach dem Dezimalpunkt abschneiden
Ich möchte einfache Fehler reduzieren. Sich selbst befehlen.
Ich möchte die Aggregationsverarbeitung mit Spring-Batch durchführen
[Rails] Ich möchte CSS mit Webpacker laden
Ich möchte eine von Git verwaltete Datei löschen
Ich möchte den Wert in Ruby erhalten
[MyBatis] Ich möchte eine Abfrageabfrage einer Tabelle zuordnen, die eine Eins-zu-Viele-Beziehung zu einer verschachtelten Bean hat.