list 使用Stream转map记录

发布时间 2023-07-21 08:14:43作者: sensen~||^_^|||&

将一个List集合中每个元素作为key, List集合中每个元素循环调用某方法得到的值作为value,生成一个map:

public Map<String, Set<String>> getSectCodeMapStnCodes1(String bureauCode){
   //段信息
List<Jcdept> jcdepts = BU_MAP_SECTION.get(bureauCode);
//jcdepts的 k-v映射
Map<String, String> collect = jcdepts.stream().collect(Collectors.toMap(JcDeptBase::getDeptcodeKyz, JcDeptBase::getDeptname));
// 段码映射站码list
return collect.keySet().stream().collect(Collectors.toMap(k -> k, v -> {
// 调取其他接口方法获取段下属站长码集合作为value,(其中k 和 v 都是collect.keySet()集合中的值,也可以写成k -> k, k2 -> {
return jcdeptController.jcbureaulist1(new HashMap<String, String>() {{
put("deptname", sectionCodeMapName.get(v));
}}).stream().map(JcDeptBase::getDeptcodeKyz).collect(Collectors.toSet());
}));
}