首页 > 其他 > 详细

List对象 交集 并集 差集 判断及 属性多值 相同不同 判断

时间:2020-08-28 00:16:44      阅读:173      评论:0      收藏:0      [点我收藏+]
List<StudentDTO> oldList = Arrays.asList(
new StudentDTO(111, "aaa", 16, "123@163", "123"),
new StudentDTO(222, "bbb", 18, "123@163", "456"),
new StudentDTO(666, "fff", 20, "123@163", "999")
);

List<StudentDTO> newList = Arrays.asList(
new StudentDTO(111, "aaa", 16, "123@163", "123"),
new StudentDTO(222, "bbb", 18, "123@163", "456"),
new StudentDTO(333, "ccc", 19, "123@163", "789")
);

@Test
public void test() {
//根据名字交集 111 222
List<StudentDTO> andList = newList.stream()
.filter(item -> oldList.stream()
.map(e -> e.getName()).collect(Collectors.toList()).contains(item.getName()))
.collect(Collectors.toList());

System.out.println(andList);
}
@Test
public void test2() {
//差集oldList-oldList 666
List<StudentDTO> list = oldList.stream()
.filter(item -> !newList.stream().map(e -> e.getName()).collect(Collectors.toList()).contains(item.getName()))
.collect(Collectors.toList());

System.out.println(list);
}
@Test
public void test3() {
//差集newList-oldList 333
List<StudentDTO> list = newList.stream()
.filter(item -> !oldList.stream().map(e -> e.getName()).collect(Collectors.toList()).contains(item.getName()))
.collect(Collectors.toList());

System.out.println(list);
}
@Test
public void test4() {
//差集newList-oldList基础上 判断 id name 都不相同
List<StudentDTO> list = newList.stream()
.filter(item -> !oldList.stream().map(e -> e.getId() + "&" + e.getName())
.collect(Collectors.toList()).contains(item.getId() + "&" + item.getName())
).collect(Collectors.toList());

System.out.println(list);
}
@Test
public void test5() {
//id相同 name不同
List<StudentDTO> list = newList.stream()
.filter(item -> oldList.stream().map(e -> e.getId())
.collect(Collectors.toList()).contains(item.getId()))
.filter(item -> !oldList.stream().map(e -> e.getName())
.collect(Collectors.toList()).contains(item.getName()))
.collect(Collectors.toList());

System.out.println(list);
}

List对象 交集 并集 差集 判断及 属性多值 相同不同 判断

原文:https://www.cnblogs.com/wf-zhang/p/13574925.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!