即,如果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)