合并组

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;
        }
    }
}
posted @ 2025-05-14 10:52  亲爱的阿道君  阅读(9)  评论(0)    收藏  举报