java实现分组,取出每组数据

根据相同编号归为一组,显示同一编号的所有人员

//            编号	   组名	    姓名	性别 	民族
//            00001	     —	    刘军	 男	    汉族
//            00001	     —	    王红	 女	    汉族
//            00001	     —	    刘瑞	 男	    汉族
//            00001	     —	    刘金	 男	    汉族
//            00001	     —	    宋莲	 女	    汉族
//            00002	     —	    刘民	 男	    汉族
//            00002	     —	    李双	 女	    汉族
//            00002	     —	    刘梦	 女	    汉族
//            00002	     —	    刘圆	 女	    汉族
//            00003	     —	    刘彦	 男	    汉族
//            00003	     —	    郑亚	 女	    汉族
//            00003	     —	    刘绿	 女	    汉族
//            00004	     —	    刘群	 男	    汉族
//            00004	     —	    黄瑟	 女	    汉族
//            00004	     —	    刘辉	 男	    汉族
//            00004	     —	    刘平	 女	    汉族
//            00004	     —	    闫霜	 男	    汉族

      List<Entity > EntityList = Service.getEntities(); //数据库的所有信息
      
        //创建map
        Map<String, List<Entity>> result = new TreeMap<>(); 
        //遍历所有信息,添加map
        for (Entity InfoEntity : EntityList ) {
           if (result.containsKey(InfoEntity.getBh())) { //包含相同编号,
            result.get(InfoEntity.getBh()).add(zsInfoEntity); //相同编号追加到集合中
            }else { //每组中只有一个的
                ArrayList<InfoEntity> list = new ArrayList<>();
                list.add(InfoEntity); 
                result.put(InfoEntity.getBh(), list);//直接添加到集合中
            }
        }
        //    返回数据 {0001:[{人员1},{人员2}]} {0002:[{人员1},{人员2}]......}

     

遍历map的value。 赋值给新的实体类(所需要的格式)

@Data
public class NewEntity {
    int Bh; //编号
    int Num; //每组人员个数
    List<Entity> Entities;
}
//

   ArrayList<NewEntity> arr = new ArrayList<>();

        //只取map 的value  遍历,添加到新的对象,ZsInfoEntity
 Iterator<Map.Entry<String, List<InfoEntity>>> it =result.entrySet().iterator();
        while (it.hasNext()) {
            NewEntity newEntity = new NewEntity ();
            Map.Entry<String, List<Entity>> entry = it.next();
            newEntity .setNum(entry.getValue().size());
            newEntity .setBh(entry.getKey());
            newEntity .setEntities(entry.getValue());
            arr.add(zs);
        }
        return arr;//[{bh:001,Num:n,entities:[{1},{2}......]}]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值