2016-10-24 11 views
2

私はユーザList<User> "abc"のリストを持っています。1つのリストから複数のフィールドを抽出し、別のリストまたは同じタイプの新しいリストに保存します。 Java 8

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

私だけList<User>から名前と住所を抽出し、別の新しいリストオブジェクトList<User>「XYZ」に保存する必要があります。または、2つのStringフィールドの名前とアドレスを持つ新しいリスト。例:

元のリストを反復して別の新しいリストオブジェクトに保存することができます。しかし、私はそれがより効率的にJava 8で行われる方法を知りたいと思います。 streams()map() ...などを使用し、既定のコンストラクタを使用します。

答えて

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

お返事ありがとうございました。私はパラメータ化されたコンストラクタを必要とするこのロジックを実装しました。コンストラクタなしで可能ですか? – SudeepShakya

+1

SomeClassのインスタンスを通常どのように作成しますか?ラムダのコードで置き換えます。 – kjsebastian

+0

あなたはもっと説明できますか?例を示します。クラスをインスタンス化せずに意味します。 – SudeepShakya

関連する問題