import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<User> users = Arrays.asList(
new User("Alice", 30),
new User("Bob", 20),
new User("Alice", 25),
new User("Charlie", 30),
new User("Bob", 20) // 注意这里的Bob和Alice的年龄不同,但你想要基于所有属性分组,这里只是为了示例重复了Bob
);
// 根据用户名和年龄分组
Map<String, List<User>> groupedByUserNameAndAge = users.stream()
.collect(Collectors.groupingBy(user -> user.getName() + "_" + user.getAge())); // 使用连接符连接字符串以区分同名不同年龄的用户
groupedByUserNameAndAge.forEach((key, value) -> {
System.out.println("Key: " + key); // 输出分组的键(例如 Alice_30)
value.forEach(user -> System.out.println(user)); // 输出分组中的用户列表
});
}
}