Map<String, String> resMap = maps.stream() // .filter(map -> map.get("PID").equals(pid) && map.get("UID").equals(uid) && map.get("DATE").equals(date)) // .findAny().orElse(null); // System.out.println("resMap = " + resMap);用for循环
时间: 2024-03-02 13:52:59 浏览: 21
如果要使用for循环实现上述代码的功能,可以按照如下步骤进行:
1. 定义一个Map变量resMap,并将其初始化为null。
2. 使用for循环遍历Map列表中的每一个元素。
3. 对于每一个Map对象,判断其"PID"、"UID"、"DATE"属性值是否都与给定参数相等。如果是,则将该Map对象赋值给resMap,并跳出循环。
4. 如果没有满足条件的Map对象,则resMap仍然为null。
下面是相应的Java代码实现:
```
Map<String, String> resMap = null;
for (Map<String, String> map : maps) {
if (map.get("PID").equals(pid) && map.get("UID").equals(uid) && map.get("DATE").equals(date)) {
resMap = map;
break;
}
}
System.out.println("resMap = " + resMap);
```
相关问题
优化这段代码List<Map<String,Object>> resList = new ArrayList<>(); Map<String,Object> map1 =new HashMap<>(); map1.put("area_name",resMap.get("area_name")); map1.put("type",resMap.get("type")); map1.put("child_num","一孩"); map1.put("men",resMap.get("one_child_boys")); map1.put("women",resMap.get("one_child_girls")); Map<String,Object> map2 =new HashMap<>(); map2.put("area_name",resMap.get("area_name")); map2.put("type",resMap.get("type")); map2.put("child_num","二孩"); map2.put("men",resMap.get("two_child_boys")); map2.put("women",resMap.get("two_child_girls")); Map<String,Object> map3 =new HashMap<>(); map3.put("area_name",resMap.get("area_name")); map3.put("type",resMap.get("type")); map3.put("child_num","多孩"); map3.put("men",resMap.get("many_child_boys")); map3.put("women",resMap.get("many_child_girls")); resList.add(map1); resList.add(map2); resList.add(map3);
这段代码可以优化为:
List<Map<String,Object>> resList = new ArrayList<>();
Map<String,Object> map =new HashMap<>();
map.put("area_name",resMap.get("area_name"));
map.put("type",resMap.get("type"));
map.put("child_num","一孩");
map.put("men",resMap.get("one_child_boys"));
map.put("women",resMap.get("one_child_girls"));
resList.add(map);
map =new HashMap<>();
map.put("area_name",resMap.get("area_name"));
map.put("type",resMap.get("type"));
map.put("child_num","二孩");
map.put("men",resMap.get("two_child_boys"));
map.put("women",resMap.get("two_child_girls"));
resList.add(map);
map =new HashMap<>();
map.put("area_name",resMap.get("area_name"));
map.put("type",resMap.get("type"));
map.put("child_num","多孩");
map.put("men",resMap.get("many_child_boys"));
map.put("women",resMap.get("many_child_girls"));
resList.add(map);
这样可以减少代码行数,提高代码的可读性和可维护性。
public Map<String,Set<String>> getDepGroupList(List<String> orgIdList) { Map<String,Set<String>> resMap = new HashMap<>(2); Set<String> depcodes = new HashSet<>(); Set<String> groupcodes = new HashSet<>(); List<SmsOrgEntity> orgList = smsOrgService.list(new LambdaQueryWrapper<SmsOrgEntity>().in(SmsOrgEntity::getId, orgIdList)); orgList.forEach(org -> { String depcode = ""; String groupcode = ""; if ("5".equals(org.getLevelcode())) { groupcode = org.getOrgcode(); } if ("4".equals(org.getLevelcode())) { depcode = org.getOrgcode(); } if (StrUtil.isEmpty(depcode) || StrUtil.isEmpty(groupcode)) { String[] orgArr = forGetDepGroupCode(depcode, groupcode, org.getSupercode()); depcode = orgArr[0]; groupcode = orgArr[1]; } if (!StrUtil.isBlank(depcode)) { depcodes.add(depcode); } if (!StrUtil.isBlank(groupcode)) { groupcodes.add(groupcode); } }); resMap.put("depcodes", depcodes); resMap.put("groupcodes", groupcodes); return resMap; } /** * 递归获取部门code和小组code * @param depcode 部门code * @param groupcode 小组code * @param parentCode 父组织code */ public String[] forGetDepGroupCode(String depcode, String groupcode, String parentCode) { if (StrUtil.isEmpty(parentCode)) { return new String[]{depcode, groupcode}; } SmsOrgEntity org = smsOrgService.getOne(new LambdaQueryWrapper<SmsOrgEntity>().eq(SmsOrgEntity::getOrgcode, parentCode)); if (ObjectUtil.isEmpty(org)) { return new String[]{depcode, groupcode}; } if ("5".equals(org.getLevelcode())) { groupcode = org.getOrgcode(); } if ("4".equals(org.getLevelcode())) { depcode = org.getOrgcode(); } if (StrUtil.isEmpty(depcode) || StrUtil.isEmpty(groupcode)) { String[] orgArr = forGetDepGroupCode(depcode, groupcode, org.getSupercode()); depcode = orgArr[0]; groupcode = orgArr[1]; } return new String[]{depcode, groupcode}; }
这段代码是一个Java方法,用于根据给定的orgIdList获取部门code和小组code的映射关系。方法中首先创建了一个空的HashMap作为结果集,然后定义了两个HashSet用于存储部门code和小组code。接下来通过orgIdList查询对应的SmsOrgEntity对象列表,并对列表进行遍历。在遍历过程中,根据SmsOrgEntity对象的levelcode属性判断其是部门还是小组,然后将对应的orgcode赋值给depcode或groupcode。如果depcode或groupcode为空,则调用forGetDepGroupCode方法递归获取depcode和groupcode。最后将depcode和groupcode添加到对应的HashSet中,并将HashSet添加到结果集中返回。
forGetDepGroupCode方法是一个递归方法,用于根据父组织code获取部门code和小组code。方法首先判断parentCode是否为空,如果为空则直接返回depcode和groupcode。否则根据parentCode查询对应的SmsOrgEntity对象,然后根据levelcode属性判断其是部门还是小组,并将对应的orgcode赋值给depcode或groupcode。如果depcode或groupcode为空,则调用自身递归获取depcode和groupcode。最后返回depcode和groupcode。
这段代码的作用是根据给定的orgIdList获取部门code和小组code的映射关系,并以Map形式返回。其中使用了递归方法forGetDepGroupCode来处理父组织code获取子组织code的情况。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)