通过HashMap方式,将数据根据多个条件去重,并重组

在项目开发的过程中,会遇到很多关于数据的去重,但有些特殊的业务条件往往依靠函数或者一条代码是无法解决业务需求的,这个时候我们可以使用hashMap去重组判断我们需要的数据,希望能帮助到大家,话不多说上代码。

// 从数据库中查出来的数据
//结合业务,这段代码是查询出来的多条数据
ArrayList<Entity> records = new ArrayList<>();

//我们new一个Map,注map是k,v结构的
Map<String, Entity> resultMap = new HashMap<>();

//开始遍历每一条数据
for (Entity record : records) {
    // 用编号和状态做key,特定需求
    String key = record.getNo()+record.getStatus();
    
    //如果我们装进map的数据中key等于我们拼接的key
    if (resultMap.containsKey(key)){
    //就把该次数据中的key拿出来,进行逻辑处理
        Entity entity = resultMap.get(key);
    //将该次数据中的拿出来的字段进行重构,根据业务需求
        entity.setSysUser(record.getSysUser() +"," +entity.getSysUser());
    }else {
     //如果该次数据不符合if条件则直接装进map里面
        resultMap.put(key,record);
    }
}
// 最后的结果
//因为我们都是k,v的形式但是反的数据一般用不到key的,所以我们通过map中的方法直接全部拿到values就可以
Collection<Entity> result = resultMap.values();
//注,后续业务一般用到的list集合比较多,可以使用流将该数据进行转换

   希望能帮助到大家~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值