业务需求
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019090718401172.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JhaW9mY2hhbw==,size_16,color_FFFFFF,t_70)
代码实现
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("------");
}