合并组
package service;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GroupService {
public static void main(String[] args) {
List<GroupUser> list = new ArrayList<>();
list.add(new GroupUser(1L, "一组", 1L, "TOM"));
list.add(new GroupUser(1L, "一组", 2L, "jack"));
list.add(new GroupUser(2L, "二组", 3L, "Ludy"));
list.add(new GroupUser(2L, "二组", 1L, "TOM"));
// 合并分组
Map<Long, GroupUser> groupMap = new HashMap<>();
for (GroupUser gu : list) {
Long groupId = gu.getGroupId();
GroupUser group = groupMap.get(groupId);
if (group == null) {
group = new GroupUser(gu.getGroupId(), gu.getGroupName());
groupMap.put(groupId, group);
}
// 添加当前用户到组的userList
group.getUserList().add(new User(gu.getUserId(), gu.getUserName()));
}
// 转换为列表
List<GroupUser> groupedList = new ArrayList<>(groupMap.values());
// 输出结果
for (GroupUser group : groupedList) {
System.out.println("Group: " + group.getGroupName());
for (User user : group.getUserList()) {
System.out.println(" User: " + user.getUserName());
}
}
}
@Data
private static class User {
private Long userId;
private String userName;
public User(Long userId, String userName) {
this.userId = userId;
this.userName = userName;
}
}
@Data
private static class GroupUser {
private Long groupId;
private String groupName;
private Long userId;
private String userName;
private List<User> userList = new ArrayList<>();
public GroupUser(Long groupId, String groupName) {
this.groupId = groupId;
this.groupName = groupName;
}
public GroupUser(Long groupId, String groupName, Long userId, String userName) {
this.groupId = groupId;
this.groupName = groupName;
this.userId = userId;
this.userName = userName;
}
}
}
不积跬步,无以至千里;不积小流,无以成江海。
浙公网安备 33010602011771号