Java流,试图改变地图<;字符串,列表<;T>&燃气轮机;进入地图<;字符串,Map<;字符串,列表<;T>&燃气轮机&燃气轮机;
因此,我有以下目标:Java流,试图改变地图<;字符串,列表<;T>&燃气轮机;进入地图<;字符串,Map<;字符串,列表<;T>&燃气轮机&燃气轮机;,java,dictionary,java-stream,Java,Dictionary,Java Stream,因此,我有以下目标: @Data @Builder @NoArgsConstructor @AllArgsConstructor public class StakeHolderTypesDepartmentsNotifications { private StakeholderTypeEntity stakeholderTypeEntity; private StakeholderDepartmentEntity stakeholderDepartmentEntity;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StakeHolderTypesDepartmentsNotifications {
private StakeholderTypeEntity stakeholderTypeEntity;
private StakeholderDepartmentEntity stakeholderDepartmentEntity;
private StakeholderEntity stakeholderEntity;
private StakeholderNotificationEntity stakeholderNotificationEntity;
}
因此,我最初有一个该对象的列表,并将其转换为一个映射条目。GetStateHolderDepartmentEntity()!=空)
.收集(分组)(
entry->entry.getStateHolderDepartmentEntity().getId());
不过,现在我想提出以下几点:
Map<String, Map<String,List<StakeHolderTypesDepartmentsNotifications>>
Map您可以使用另一个groupingBy
作为下游收集器来实现它:
Map<String, Map<String, List<StakeHolderTypesDepartmentsNotifications>>> resultMap =
stakeholders
.stream()
.filter(e -> e.getStakeholderTypeEntity() != null)
.filter(e -> e.getStakeholderDepartmentEntity() != null)
.collect(Collectors.groupingBy(
e -> e.getStakeholderDepartmentEntity().getId(),
Collectors.groupingBy(
e -> e.getStakeholderTypeEntity().getId())));
映射结果映射=
利益相关者
.stream()
.filter(e->e.GetStateHolderTypeEntity()!=null)
.filter(e->e.GetStateHolderDepartmentEntity()!=null)
.collect(收集器.groupingBy(
e->e.GetStateHolderDepartmentEntity().getId(),
收集者分组(
e->e.GetStateHolderTypeEntity().getId());
当然,额外检查getStateHolderTypeEntity()
是否返回null
可能有意义。您可以使用另一个groupingBy
作为下游收集器来实现这一点:
Map<String, Map<String, List<StakeHolderTypesDepartmentsNotifications>>> resultMap =
stakeholders
.stream()
.filter(e -> e.getStakeholderTypeEntity() != null)
.filter(e -> e.getStakeholderDepartmentEntity() != null)
.collect(Collectors.groupingBy(
e -> e.getStakeholderDepartmentEntity().getId(),
Collectors.groupingBy(
e -> e.getStakeholderTypeEntity().getId())));
Map<String, Map<String, List<StakeHolderTypesDepartmentsNotifications>>> result = stakeholders
.stream()
.filter(e -> e.getStakeholderTypeEntity() != null &&
e.getStakeholderDepartmentEntity() != null)
.collect(groupingBy(e -> e.getStakeholderTypeEntity().getId(),
groupingBy(e -> e.getStakeholderDepartmentEntity().getId())));
映射结果映射=
利益相关者
.stream()
.filter(e->e.GetStateHolderTypeEntity()!=null)
.filter(e->e.GetStateHolderDepartmentEntity()!=null)
.collect(收集器.groupingBy(
e->e.GetStateHolderDepartmentEntity().getId(),
收集者分组(
e->e.GetStateHolderTypeEntity().getId());
当然,额外检查getStakeholderTypeEntity()
是否不返回null
,可能有意义。Map result=providers
Map<String, Map<String, List<StakeHolderTypesDepartmentsNotifications>>> result = stakeholders
.stream()
.filter(e -> e.getStakeholderTypeEntity() != null &&
e.getStakeholderDepartmentEntity() != null)
.collect(groupingBy(e -> e.getStakeholderTypeEntity().getId(),
groupingBy(e -> e.getStakeholderDepartmentEntity().getId())));
.stream()
.filter(e->e.GetStateHolderTypeEntity()!=null&&
e、 getStakeholderDepartmentEntity()!=null)
.collect(groupingBy(e->e.GetStateHolderTypeEntity().getId()),
分组方式(e->e.GetStateHolderDepartmentEntity().getId());
映射结果=利益相关者
.stream()
.filter(e->e.GetStateHolderTypeEntity()!=null&&
e、 getStakeholderDepartmentEntity()!=null)
.collect(groupingBy(e->e.GetStateHolderTypeEntity().getId()),
分组方式(e->e.GetStateHolderDepartmentEntity().getId());
您应该能够通过应用收集器来完成此操作。groupingBy
多次:
映射结果=
利益相关者
.stream()
.filter(entry->Objects.nonNull(entry.getStateHolderTypeEntity())
&&Objects.nonNull(entry.getStateHolderDepartmentEntity())
.收集(
收集者分组(
entry->entry.GetStateHolderTypeEntity().getId(),
收集者分组(
entry->entry.getStateHolderDepartmentEntity().getId()
)
)
);
旁白:重构字段名称以消除冗余的冗长是值得的:
公共类利益相关者类型部门通知{
//只是一个跨所有这些表联接的sql查询模型
私人股东类型实体类型;
私人股东部门实体部门;
私人利益相关者;
私人股东通知实体通知;
}
然后构建地图将如下所示:
映射结果=
利益相关者
.stream()
.filter(entry->Objects.nonNull(entry.getType())&&Objects.nonNull(entry.getDepartment())
.收集(
收集者分组(
entry->entry.getType().getId(),
Collectors.groupingBy(->entry.getDepartment().getId())
)
);
您应该能够通过应用收集器来完成此操作。groupingBy
多次:
映射结果=
利益相关者
.stream()
.filter(entry->Objects.nonNull(entry.getStateHolderTypeEntity())
&&Objects.nonNull(entry.getStateHolderDepartmentEntity())
.收集(
收集者分组(
entry->entry.GetStateHolderTypeEntity().getId(),
收集者分组(
entry->entry.getStateHolderDepartmentEntity().getId()
)
)
);
旁白:重构字段名称以消除冗余的冗长是值得的:
公共类利益相关者类型部门通知{
//只是一个跨所有这些表联接的sql查询模型
私人股东类型实体类型;
私人股东部门实体部门;
私人利益相关者;
私人股东通知实体通知;
}
然后构建地图将如下所示:
映射结果=
利益相关者
.stream()
.filter(entry->Objects.nonNull(entry.getType())&&Objects.nonNull(entry.getDepartment())
.收集(
收集者分组(
entry->entry.getType().getId(),
Collectors.groupingBy(->entry.getDepartment().getId())
)
);
我不理解这个问题,您想通过java stream将以前的Map
更改为新的Map
?或者您想通过流式处理以前的Map
来创建新的Map
?我不理解这个问题,您想通过java流将以前的Map
更改为新的Map
?或者,是否要通过流式处理以前的映射
来创建新的映射
?