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 compareListHitData(List oneList, List twoList) {
        List 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;
    }



}

 

你可能感兴趣的:(小技能点)