在项目开发的过程中,会遇到很多关于数据的去重,但有些特殊的业务条件往往依靠函数或者一条代码是无法解决业务需求的,这个时候我们可以使用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集合比较多,可以使用流将该数据进行转换
希望能帮助到大家~