@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));

结果:

List根据某一字段去重_JAVA

业精于勤,大家加油鸭