2016-10-24 5 views
2

Ich habe eine Liste von Benutzer List<User> "abc".Extrahieren Sie mehrere Felder aus einer Liste und speichern Sie sie in einer anderen Liste oder geben Sie eine neue Liste ein. In Java 8

class User { 
int id; 
String name; 
String address; 
.....//getters and setters 
} 

Ich brauche nur Name und Adresse aus dem List<User> zu extrahieren und auf eine andere neue Liste Objekt List<User> „xyz“ speichern. Oder eine neue Liste, die zwei String-Felder Name und Adresse haben. z. B .:

Ich weiß, dass es durch Iterieren der ursprünglichen Liste und Speichern in einem anderen neuen Listenobjekt erfolgen kann. Aber ich möchte wissen, wie es in Java 8 effizienter gemacht werden kann. Durch Verwendung von streams(), map() ... usw. Und mit der Verwendung von Standardkonstruktor.

Antwort

5
List<SomeClass> list = users.stream() 
          .map(user -> new SomeClass(user.getName(), user.getAddress())) 
          .collect(Collectors.toList()); 
+0

Danke für die Antwort. Ich habe diese Logik implementiert, die einen parametrisierten Konstruktor benötigt. Ist es ohne Konstrukteur möglich? – SudeepShakya

+1

Wie erstellt man normalerweise eine Instanz von SomeClass? Ersetzen Sie diesen Code im Lambda. – kjsebastian

+0

Kannst du beschreibender sein? mit Beispiel. Ich meine, ohne Klassen zu instantiieren. – SudeepShakya

Verwandte Themen