业务需求
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b062a0b889c6407d8147a677074ff788.png)
代码实现
public static void mapDemo(){
Map<String, List<ApproverDTO>> approvers = new HashMap<>();
List<String> ancestorGeoUnitIds = new ArrayList<>();
//init
List<ApproverDTO> s1 = new ArrayList();
Collections.addAll(s1,ApproverDTO.builder().geographicUnitId("1").build(),ApproverDTO.builder().geographicUnitId("2").build(),ApproverDTO.builder().geographicUnitId("3").build());
approvers.put("CFO1",s1);
List<ApproverDTO> s2 = new ArrayList();
Collections.addAll(s2,ApproverDTO.builder().geographicUnitId("1").build(),ApproverDTO.builder().geographicUnitId("2").build(),ApproverDTO.builder().geographicUnitId("3").build());
approvers.put("CFO2",s2);
Collections.addAll(ancestorGeoUnitIds,"2","3");
Map<String, List<ApproverDTO>> listMap = approvers.entrySet().stream().map(entry -> {
System.out.println("key-" + entry.getKey() + ":value-" + entry.getValue());
List<ApproverDTO> value = entry.getValue();
List<ApproverDTO> result =null;
for (String ancestorGeoUnitId:ancestorGeoUnitIds) {
result = value.stream().filter(approverDTO -> ancestorGeoUnitId.equalsIgnoreCase(approverDTO.getGeographicUnitId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(result)){
break;
}
}
entry.setValue(result);
return entry;
}).collect(Collectors.toMap(entry1 -> entry1.getKey(), entry1 -> entry1.getValue()));
System.out.println("------");
}