如何使用Java流比较两个列表[重复]

问题描述 投票:0回答:1

我有两个类型为Customer的列表。我正在比较两个列表。我想使用Java流来实现这一点。请帮助。

 Customer{
   String Name,
   String owner,
 }

    List<object> newList = new ArrayList<>();
       for(Object ob1: list1) {         
         for(Object ob2: list2) {       
           if(ob1.getName().equals(ob2.getName())) {                
                 ob1.setOwner(ob2.getOwner());              
                  newList.add(ob1);
             }              
          }
       }
java stream
1个回答
0
投票

您可以这样做:

list1.stream().map(ob1 -> {
    list2.stream()
        .filter(ob2 -> ob1.getName().equals(ob2.getName()))
        .ifPresent(ob2 -> ob1.setOwner(ob2.getOwner()));
    return ob1;
    }).collect(Collectors.toList());

但这不是更高效,可读性只是个人喜好。

© www.soinside.com 2019 - 2024. All rights reserved.