@Test public void myTest1(){ List<Role> list = Lists.newArrayList(); list.add(new Role(1,"张三")); list.add(new Role(2,"李四")); list.add(new Role(1,"王五")); log.info("list去重前:{}",list); //根据roleId去重 list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(Role::getRoleId))), ArrayList::new)); log.info("list根据roleId去重之后:{}",list); }
核心代码:
list = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(Role::getRoleId))), ArrayList::new));
结果: