2017-06-07 11 views
0

次のコードをJava 8 Streamに変換できるかどうかは疑問でしたか?次のコードをJava 8 Streamに変換するには?

List<Borg> newBorgMembers = new ArrayList<>(); 

// mankind is a List<Individual> 
mankind.forEach(id -> newBorgMembers.add(new Borg(id))); 

所望の構造:この質問は、チュートリアルからである

List<Borg> newBorgMembers = mankind.stream().filter().map().collect() 

は、ヒントはfiltermapを使用しています。私の難しさは、空のホルダーList<Borg>を開始せずに要素を追加する方法です。

+0

私はあなたの最初のコードでは、フィルタの必要性が表示されません。 – tsolakp

+0

ストリームからリストに要素を集めることができます。 –

+1

を使用すると、ストリームからリストに要素を収集できます。 リスト newBorgMembers = mankind.stream()。filter(e - ><あなたの条件>)map(e-><あなたの要素の変更>)collect(Collectors.toList()); –

答えて

0

ストリームのコードの一部です。

import java.util.ArrayList; 
import java.util.List; 
import java.util.stream.Collectors; 

public class StreamTest { 

    public static void main(String[] args) { 
     // Initialize mankind 
     List<Individual> mankind = new ArrayList<>(); 
     mankind.add(new Individual("A")); 
     mankind.add(new Individual("B")); 
     mankind.add(new Individual("C")); 


     // The stream 
     List<Borg> newBorgMembers = mankind.stream().map(individual -> new Borg(individual.id)).collect(Collectors.toList()); 

     newBorgMembers.forEach(borg -> System.out.println(borg.id)); 
    } 
} 

class Individual { 
    String id; 
    public Individual(String id) { 
     this.id = id; 
    } 


} 
class Borg { 
    String id; 

    public Borg(String id) { 
     this.id = id; 
    } 

} 
1

それとも少しよりよい:

mankind.stream() 
     .map(Individual::getId) 
     .map(Borg::new) 
     .collect(Collectors.toList()); 
関連する問題