我有对象 SalesInfoBean 和对象 SaleData 对象SalesInfoBean有如下字段 @ApiModelProperty(value = "姓名") private String name; @ApiModelProperty(value = "部门") private String saleArea; @ApiModelProperty(value = "区域") private String saleJurisdiction; @ApiModelProperty(value = "城市") private String department; 对象SaleData有如下字段 @ApiModelProperty(value = "销售员名称(订单负责人)") private String salesPersonName; @ApiModelProperty(value = "当天销售额") private BigDecimal dailySalesAmount; @ApiModelProperty(value = "当周销售额") private BigDecimal weeklySalesAmount; @ApiModelProperty(value = "当月销售额") private BigDecimal monthlySalesAmount; @ApiModelProperty(value = "当年销售额") private BigDecimal yearlySalesAmount; 两个对象的name 和 salesPersonName字段是一一对应的 这两个对象在我的代码中都是集合List<SalesInfoBean> salesInfoBeanList 和List<SaleData> saleDataList 我现在要通过关联字段值的比对,存到List中 List是这样的:List<ApprovedSaleData> approvedSaleDataList ,对象中有name,saleArea,saleJurisdiction,department 以及dailySalesAmount,weeklySalesAmount,monthlySalesAmount,yearlySalesAmount,并根据saleArea,saleJurisdiction,department的先后顺序分别按照A-Z排序 代码实现
时间: 2024-01-23 12:01:52 浏览: 252
可以按照以下步骤实现:
1. 遍历 salesInfoBeanList,对于每个 SalesInfoBean 对象,查找对应的 SaleData 对象,方法可以是遍历 saleDataList,找到 salesPersonName 字段与当前 SalesInfoBean 对象的 name 字段相同的 SaleData 对象。
2. 如果找到了对应的 SaleData 对象,就创建一个 ApprovedSaleData 对象,并将 SalesInfoBean 和 SaleData 的字段值分别赋值给 ApprovedSaleData 对象的对应字段。
3. 如果没有找到对应的 SaleData 对象,就创建一个只包含 SalesInfoBean 字段值的 ApprovedSaleData 对象。
4. 将所有创建的 ApprovedSaleData 对象添加到 approvedSaleDataList 中。
5. 对 approvedSaleDataList 进行排序,按照 saleArea、saleJurisdiction、department 的先后顺序分别按照 A-Z 排序。
以下是实现代码示例:
```java
List<ApprovedSaleData> approvedSaleDataList = new ArrayList<>();
for (SalesInfoBean salesInfoBean : salesInfoBeanList) {
SaleData saleData = null;
for (SaleData data : saleDataList) {
if (data.getSalesPersonName().equals(salesInfoBean.getName())) {
saleData = data;
break;
}
}
ApprovedSaleData approvedSaleData = new ApprovedSaleData();
approvedSaleData.setName(salesInfoBean.getName());
approvedSaleData.setSaleArea(salesInfoBean.getSaleArea());
approvedSaleData.setSaleJurisdiction(salesInfoBean.getSaleJurisdiction());
approvedSaleData.setDepartment(salesInfoBean.getDepartment());
if (saleData != null) {
approvedSaleData.setDailySalesAmount(saleData.getDailySalesAmount());
approvedSaleData.setWeeklySalesAmount(saleData.getWeeklySalesAmount());
approvedSaleData.setMonthlySalesAmount(saleData.getMonthlySalesAmount());
approvedSaleData.setYearlySalesAmount(saleData.getYearlySalesAmount());
}
approvedSaleDataList.add(approvedSaleData);
}
Collections.sort(approvedSaleDataList, new Comparator<ApprovedSaleData>() {
@Override
public int compare(ApprovedSaleData o1, ApprovedSaleData o2) {
int result = o1.getSaleArea().compareTo(o2.getSaleArea());
if (result == 0) {
result = o1.getSaleJurisdiction().compareTo(o2.getSaleJurisdiction());
if (result == 0) {
result = o1.getDepartment().compareTo(o2.getDepartment());
}
}
return result;
}
});
```
阅读全文