Konvertieren einer Sammlung in einen anderen Sammlertyp ohne vordefinierte Methode in Java 8

8

Was ich suche, ist eine Möglichkeit, eine Sammlung eines Typs in eine Sammlung eines anderen Typs mit Streams und map ohne eine vordefinierte Funktion / Funktion zu konvertieren Schnittstelle, die Objekt A in Objekt B konvertiert. Java 6 Beispiel:

%Vor%

Ich suche etwas in den folgenden Zeilen:

%Vor%

Was natürlich nicht funktioniert, aber Sie bekommen den Kern dessen, was ich versuche zu tun.

    
Konstantine 22.07.2015, 10:42
quelle

4 Antworten

9

Nachdem Sie das Mapping durchgeführt haben, müssen Sie die gemappten Objekte sammeln :

%Vor%     
Konstantin Yovkov 22.07.2015, 10:49
quelle
3

In Ihrem Beispielcode fehlt einfach die Operation terminal collect , um die Elemente von Stream<ObjectB> , die von Ihrer Operation map zurückgegeben wurden, in einem List<ObjectB> :

zu sammeln %Vor%

Wenn Sie Ihrer Klasse ObjectB einen Konstruktor hinzufügen, der einen Parameter vom Typ ObjectA akzeptiert und die ID festlegt, können Sie Ihren Code vereinfachen:

d. In ObjectB fügen Sie diesen Konstruktor hinzu:

%Vor%

Und dein Code wird:

%Vor%     
Eran 22.07.2015 10:49
quelle
0

Für Anhänger

%Vor%

nach einer Kartenkonvertierung bedeutete eigentlich, dass "Sie die Ausgabe Ihres Streams an eine Methode übergeben, die dies nicht als Parameter akzeptiert" (die Streamkartenkonvertierung selbst funktioniert tatsächlich), oder Sie weisen sie zu zu einer Variable, die von einem anderen Typ ist.

    
rogerdpack 27.01.2017 19:49
quelle
0

Sie können es direkt konvertieren, indem Sie den Verweis der ersten Auflistung an einen anderen Konstruktor für die Sammlung parametrisieren.

Beispiel:

%Vor%

Die Größe von 5 wird in einer anderen Sammlung auf 4 verringert, da die List-Liste Duplikate enthält, während die Option "Set" nicht vorhanden ist.

Ausgabe:

  

5

     

4

     

Ausgabe = AA

     

Ausgabe = cc

     

Ausgabe = dd

     

output = ee

    
Shubham Jain 26.02.2018 08:00
quelle

Tags und Links