LIST2 <オブジェクト>からのJava 8を使用して、リスト1の<object>で更新PARAM

ラジュSidda:

私は、オブジェクトのアカウントと給与の2つのリストを持っていると私は、オブジェクトのリストを反復処理する必要があります。IDが一致した場合、私はアカウントオブジェクトを更新する必要があります。

私はLIST1持っているとlist2のこれら2つのオブジェクトが別のオブジェクトタイプです。我々はlist2のオブジェクト(パラメータ)とLIST1内のオブジェクト(パラメータ)を更新する必要があります。

if(accounts !=null && salaries!=null) { // checking for nulls
    for (Account obj1 : accounts) {// iterating objects
        for (Salary obj2 : salaries) {
            String id = ibj2.getId();
            if (id.equals(obj1.getId())) {// id checks  
                obj1.setxxxx(obj2.getxxxx());// set the value
            }
        }
    }
}  

私は試した:

list1.stream().flatMap(x -> list2 .stream() .filter(y -> x.getId().equals(y.getId())));
シャロンベンアッシャー:

最後の操作は、obj1.setxxxx(obj2.getxxxx());両方を持つことが必要ですobj1obj2そのおもむくまま両方のリストからストリーミングされた項目を

list1.stream()
    .forEach(obj1 -> 
        list2.stream()
            .filter(obj2 -> obj1.getId().equals(obj2.getId()))
            .findFirst()
            .ifPresent(obj2 -> obj1.setxxxx(obj2.getxxxx()))
    );

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222089&siteId=1