Java教程

java 两个List对象取交集 差集 以及交集更新

本文主要是介绍java 两个List对象取交集 差集 以及交集更新,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

 

List<MainDataMd0006PO> listpo = BeanUtils.transferList(mainDataMd0006Params, MainDataMd0006PO.class);

        //查询 存在的--根据批次编码
        List<MainDataMd0006PO> listup = mainDataMd0006Service.selectBatchIds(listpo);


        // 交集 (list1 & list2) 取list1 表的数据
        List<MainDataMd0006PO> listupdate =
                listpo.stream().filter(item -> listup.stream().map(up -> up.getPOSID()).collect(
                        Collectors.toList()).contains(item.getPOSID())).collect(Collectors.toList());

        listupdate.stream().forEach(update -> listup.stream().filter(up -> Objects.equals(update.getPOSID(), up.getPOSID())).
                findAny().ifPresent(up -> update.setId(up.getId())));


        // 差集 (list1 - list2)
        List<MainDataMd0006PO> listadd =
                listpo.stream().filter(item -> !listup.stream().map(up -> up.getPOSID()).collect(
                        Collectors.toList()).contains(item.getPOSID())).collect(Collectors.toList());

 

这篇关于java 两个List对象取交集 差集 以及交集更新的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!