List按照某一个字段分组(去重)

测试数据:(按照ID进行分组)

ID     生年月日   上级ID

001  19900101   null
002  19920101   001
002  19910301   001
003  19890104   002
003  19940925   002

预想结果:

001  {[19900101, null]}
002  {[19920101, 001],[19910301, 001]}
003  {[19890104, 002],[19940925, 002]}

// DB 取得的数据       
List<User> userData= testRepository.selectUserData();
// 变换后的数据储存到map中
Map<String, List<User>> userMap = new HashMap<>();

if (!userData.isEmpty()) { 
    // 循环List       
    for (User user: userData) {
    	//map存在,追加存放数据
        if (userMap.containsKey(user.getUserId())) {
            userMap.get(user.getUserId()).add(user);
        } else {
        	//map中不存在,新建key,用来存放数据
            List<User> tmpList = new ArrayList<User>();
            tmpList.add(user);
            userMap.put(user.getUserId(), tmpList);
        }
    }       
}       

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值