java对list根据两个字段分组
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)); // 输出分组中的用户列表 }); } }