用map对list进行分组

来源:互联网 发布:apache服务器 ubuntu 编辑:程序博客网 时间:2024/06/05 21:02
//list集合List<WarehouseMonitoringData> list=monitoringService.getWarehouseMonitoringDataList(FieldStatic.Warehouse_TypeD.仓库.value);Map<Integer, List<WarehouseMonitoringData>> listMap = new HashMap<>();//根据单位id对list集合进行分组    for (WarehouseMonitoringData warehouseMonitoringData : list) {      List<WarehouseMonitoringData> tempList = listMap.get(warehouseMonitoringData.getDepartmentID());      /*如果取不到数据,那么直接new一个空的ArrayList**/      if (tempList == null) {        tempList = new ArrayList<>();        tempList.add(warehouseMonitoringData);        listMap.put(warehouseMonitoringData.getDepartmentID(), tempList);      }      else {        /*某个sku之前已经存放过了,则直接追加数据到原来的List里**/        tempList.add(warehouseMonitoringData);      }    }        //遍历分组里面的键    for(int skuId : listMap.keySet()){    //输出分组里面的集合里面的对象的名称    System.out.println(((WarehouseMonitoringData)listMap.get(skuId).get(0)).getDepartmentName());    //遍历分组里面的集合里面的对象    for(WarehouseMonitoringData warehouseMonitoringData:listMap.get(skuId)){    //输出对象里面的一个属性    System.out.println(warehouseMonitoringData.getWarehouseName());    }    }

原创粉丝点击