@Test
public void testsimpleGroup2() {
User user1 = new User("zhangsan", "beijing", 10);
User user2 = new User("zhangsan", "beijing", 20);
User user4=new User("zhangsan", "shanghai", 20);
User user3 = new User("lisi", "shanghai", 30);
List<User> list = new ArrayList<User>();
list.add(user1);
list.add(user2);list.add(user4);
list.add(user3);
Map<Object, Integer> collect2 =
list.stream()
.collect(
Collectors.groupingBy(
p->p.getName()+"_"+p.getAddress()
, Collectors.summingInt (p->p.getAge())
)
);
System.out.println(collect2);
List<User> list1=collect2.keySet().stream().map(
key->{
String[] temp=((String) key).split("_");
String name = temp[0];
String address = temp[1];
User u=new User();
u.setName(name);
u.setAddress(address);
u.setAge(collect2.get(key).intValue());
return u;
}
).collect(Collectors.toList());
list1.forEach(System.out::println);
}