List对象中,某属性值相同,如何去除指定其他属性的值,转成新的list

即,如果list中有两个对象的productId相同则去除两个其中一个productType=1,这个代码怎么写?stream流

我写了一个类似的案例,望采纳!
用户名称相同的用户,选取年龄大于19的

        List<User> users = Arrays.asList(
                new User("张三", 18, 5000),
                new User("张三", 20, 5000),
                new User("张四", 19, 7000),
                new User("张四", 22, 7000),
                new User("张五", 22, 10000));
        System.out.println("处理前:");
        users.forEach(System.out::println);
        System.out.println("处理后:");
        Map<String, List<User>> collect = users.stream()
                .collect(Collectors.groupingBy(User::getName));
        collect.keySet().forEach(c -> {
            collect.get(c).stream().filter(u -> u.getAge() > 19).forEach(System.out::println);
        });
处理前:
User(name=张三, age=18, salary=5000)
User(name=张三, age=20, salary=5000)
User(name=张四, age=19, salary=7000)
User(name=张四, age=22, salary=7000)
User(name=张五, age=22, salary=10000)
处理后:
User(name=张四, age=22, salary=7000)
User(name=张三, age=20, salary=5000)
User(name=张五, age=22, salary=10000)