两个list集合对象,根据某一A集合中对象id判断是否在另一个B集合对象的id中是否有重复,取A集合中有,B集合中没有的对象

/**
* <p> 二级菜单修改,新增没有菜单项id,删除的就是比全部的少id,修改的有菜单项id</p>
*
* @param args
*/
public static void main(String[] args) {
/**The paper come zhongjue shallow, and must know this to practice
* 数据库
*/
ArrayList<FloorElement> elements = new ArrayList<>();

FloorElement element1 = new FloorElement();
element1.setFloorId(1l);

FloorElement element2 = new FloorElement();
element2.setFloorId(2l);

FloorElement element3 = new FloorElement();
element3.setFloorId(3l);
elements.add(element1);
elements.add(element2);
elements.add(element3);
/**
* 页面
*/
ArrayList<SecondaryMenuItemsVo> itemsVos = new ArrayList<>();
//新增
SecondaryMenuItemsVo vo = new SecondaryMenuItemsVo();
SecondaryMenuItemsVo vo4 = new SecondaryMenuItemsVo();
vo4.setElementName("e");
itemsVos.add(vo4);
vo.setElementName("二级菜单");
//修改
SecondaryMenuItemsVo vo2 = new SecondaryMenuItemsVo();
vo2.setFloorId(3l);
itemsVos.add(vo);
itemsVos.add(vo2);

//为空的就是新增
List<SecondaryMenuItemsVo> newElement = itemsVos.stream().filter(x -> x.getFloorId() == null).collect(Collectors.toList());

// 共有的数据就是修改
//实际上,
List<Long> aIds = itemsVos.stream().map(SecondaryMenuItemsVo::getFloorId).collect(Collectors.toList());
//数据库
List<Long> bIds = elements.stream().map(FloorElement::getFloorId).collect(Collectors.toList());
List<Long> collect3 = aIds.stream().filter(num -> bIds.contains(num))
.collect(Collectors.toList());
bIds.removeAll(collect3);
//删除的元素
System.out.println(bIds);

}

本文来自博客园,作者:三号小玩家,转载请注明原文链接:https://www.cnblogs.com/q1359720840/p/15782416.html

原文地址:https://www.cnblogs.com/q1359720840/p/15782416.html