if (String.valueOf(map.get("DEPTORGTYPE")).equals("0") || String.valueOf(map.get("DEPTORGTYPE")).equals("2")) { dataMap.put("orgtype", "1");//类型--1-组织 2--部门 } else if (String.valueOf(map.get("DEPTORGTYPE")).equals("3")) { dataMap.put("orgtype", "2");//类型--1-组织 2--部门 }
时间: 2024-03-17 13:42:58 浏览: 24
可以将代码进行如下优化:
```java
String deptOrgType = String.valueOf(map.get("DEPTORGTYPE"));
if ("0".equals(deptOrgType) || "2".equals(deptOrgType)) {
dataMap.put("orgtype", "1"); // 类型--1-组织 2--部门
} else if ("3".equals(deptOrgType)) {
dataMap.put("orgtype", "2"); // 类型--1-组织 2--部门
}
```
优化说明:
1. 将 map.get("DEPTORGTYPE") 的结果转换为字符串后,只进行一次操作,避免了多次转换的性能消耗。
2. 使用字符串字面量代替 String.valueOf(),避免了空指针异常。
3. 使用字符串字面量代替 if 语句的判断条件,可以使代码更加简洁易读。
相关问题
优化一下 String.valueOf(deptInfo.stream().filter(e -> String.valueOf(e.get("orgId")).equals(qybm)).map(e -> e.get("id")).findFirst().get())
可以使用 Optional 的 orElseThrow 方法,避免直接调用 get() 方法可能引发的 NoSuchElementException 异常。
具体代码如下:
```
deptInfo.stream()
.filter(e -> String.valueOf(e.get("orgId")).equals(qybm))
.map(e -> e.get("id"))
.findFirst()
.map(String::valueOf)
.orElseThrow(() -> new NoSuchElementException("未找到对应的部门信息"));
```
以上代码将首先筛选出 orgId 等于 qybm 的元素,并将它们的 id 属性映射为一个 Stream,然后在这个 Stream 上调用 findFirst() 方法,返回一个 Optional 类型的对象。接下来,我们可以利用 Optional 提供的方法进一步处理这个结果。在这里,我们使用 map() 方法将 id 属性的值转换为字符串类型,然后使用 orElseThrow() 方法,如果 Optional 对象为空则抛出 NoSuchElementException 异常。
String.valueOf(deptInfo.stream().filter(e -> String.valueOf(e.get("orgId")).equals(qybm)).map(e -> e.get("id")).findFirst().get())
这段代码的作用是从 deptInfo 这个 List<Map<String, Object>> 中找到 orgId 等于 qybm 的那个 Map,然后取出它的 id 字段,并将其转换成字符串返回。
具体来说,代码中的 filter() 方法会对 deptInfo 中的每一个 Map 进行过滤,只保留其中 orgId 字段等于 qybm 的那个 Map。接着,map() 方法会将这个 Map 转换成它的 id 字段,findFirst() 方法会从转换后的 Stream 中取出第一个元素(也就是唯一一个元素),最后用 String.valueOf() 方法将这个元素转换成字符串返回。如果在 deptInfo 中没有找到符合条件的 Map,或者找到的 Map 中没有 id 字段,那么代码会抛出 NoSuchElementException 异常。