java 1.8 通过遍历两个List中按组织编号关联匹配 合并

有点像sql  的left join

import com.unicom.initperson.entity.Identity;
import com.unicom.initperson.entity.Person;

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

public class ListUtil {

    /**
     *  通过遍历两个List中按组织编号关联匹配
     * @param oneList
     * @param twoList
     */
    public static List<Person> compareListHitData(List<Person> oneList, List<Identity> twoList) {
        List<Person> list=oneList.stream().map(person -> twoList.stream()
                .filter(identity -> Objects.equals(person.getEmployee(),identity.getNumber()))
                .findFirst().map(i -> {
                    person.setDutyName(i.getDutyName());
                    person.setLoginNumber(i.getLoginName());
                    person.setUnit(i.getOrgNumber());
                    person.setMajor(i.getMain());
                    person.setOrderNumber(i.getOrder());
                    return person;
                }).orElse(null))
                .filter(Objects::nonNull).collect(Collectors.toList());
        return list;
    }



}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值