数据初始化
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;
}