java8 两个List对象合并和List的转换成Map

数据初始化

Goods goods1 = new Goods(1,"衣服","","1",100,"10010","vivi","");
        Goods goods2 = new Goods(2,"衣服","白色","1",100,"10011","lily","");
        Goods goods3 = new Goods(3,"裤子","黑","1",300,"10011","lily","");
        Goods goods4 = new Goods(4,"衬衫","小码","1",50,"10013","liu","");

        Users users1 = new Users("10010","vivi","18676565435","nv");
        Users users2 = new Users("10011","lily","18676565434","nv");
        Users users3 = new Users("10012","hua","18676565490","nv");

        Users users4 = new Users("10011","lily","18676565434","nv");
        Users users5 = new Users("10012","hua","18676565490","nv");

        List<Users> usersList1 = new ArrayList<>();
        usersList1.add(users1);
        usersList1.add(users2);
        usersList1.add(users3);

        List<Users> usersList2 = new ArrayList<>();
        usersList2.add(users4);
        usersList2.add(users5);

        List<Goods> goods = new ArrayList<>();
        goods.add(goods1);
        goods.add(goods2);
        goods.add(goods3);
        goods.add(goods4);

List转成成Map

public static Map<String, Goods> listToMap(List<Goods> goods){
        Map<String,Goods> listMap = goods.stream().collect(Collectors.toMap(x->x.getUserId(),x->x,(oldVal, newVal) -> newVal));
        return listMap;
    }

筛选listA和listB的交集

public static List<Users> filter(List<Users> usersA,List<Users> usersB){
        return usersA.stream().filter(item->usersB.contains(item)).collect(Collectors.toList());
    }

根据List对象的实体对象中的某个字段生成新的list

public static Set ListObjectToString(List<Users> users){
        List<String> stringList = users.stream().map(o->o.getUserId()).collect(Collectors.toList());
         return stringList;
    }

ListA和ListB通过id相同进行筛选获取ListA

public static List<Goods> TwoToList(List<Goods> goods,List<Users> users) {
        Map<String, Users> listMap = users.stream().collect(Collectors.toMap(x -> x.getUserId(), x -> x, (oldVal, newVal) -> newVal));
        List<Goods> goodsList = goods.stream().map(item -> {
            Goods good = CommonUtil.conventObj(item, Goods.class);
            if (listMap.containsKey(item.getUserId())) {
                return good;
            }
            return null;
        }).filter(Objects::nonNull).collect(Collectors.toList());
        return goodsList;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值