if(!StringUtil.isEmpty(borrowStatus)){ params.put("borrowStatus",borrowStatus); } if(!StringUtil.isEmpty(returnStatus)){ params.put("returnStatus",returnStatus); }如何优化这段代码
时间: 2024-01-10 22:02:38 浏览: 37
可以使用三目运算符将重复的代码合并,可以看起来更简洁:
```
params.put("borrowStatus", StringUtil.isEmpty(borrowStatus) ? null : borrowStatus);
params.put("returnStatus", StringUtil.isEmpty(returnStatus) ? null : returnStatus);
```
这样,当 `borrowStatus` 或 `returnStatus` 为空时,对应的参数值将会设为 `null`,否则就将非空的参数值直接放入 `params` 中。这样可以使代码更加简洁,避免了重复的判断和赋值操作。
相关问题
if (StringUtil.isEmpty(o)||StringUtil.isEmpty(remoteColumn)){ if (StringUtil.isNotEmpty(o)||StringUtil.isNotEmpty(remoteColumn)){ if (sb.length()!=0){ sb.append(","); } sb.append(column); } continue; }这段代码有能优化执行效率的地方吗?
这段代码中有一些可以优化执行效率的地方:
1. 在第一个 if 语句中,使用逻辑或运算符 || 进行两次判断,如果第一个条件成立,那么第二个条件就不会被执行。可以将两个条件交换位置,这样如果 o 不为空,就不会再执行 StringUtil.isEmpty(remoteColumn) 的判断了,可以提高效率。
2. 在第二个 if 语句中,使用了逻辑与运算符 && 进行两次判断。可以将第一个条件改为 StringUtil.isEmpty(o) 的取反形式,这样就可以省略第二个条件的判断,提高效率。
3. 在第三个 if 语句中,使用了 sb.length()!=0 进行判断,可以改为 sb.length()>0 的方式,这样可以少一次比较操作。
综上所述,优化后的代码如下:
if (StringUtil.isNotEmpty(remoteColumn) && StringUtil.isNotEmpty(o)) {
continue;
}
if (!StringUtil.isEmpty(o) && !StringUtil.isEmpty(remoteColumn)) {
if (sb.length() > 0) {
sb.append(",");
}
sb.append(column);
}
if(!CollectionUtils.isEmpty(assessList)){ List<Assess> dataList = new ArrayList<>(); for(Assess assess : assessList){ String directRater = assess.getDirectRater(); String deptRater = assess.getDeptRater(); if(!StringUtil.isEmpty(directRater)){ raters.add(directRater); } if(!StringUtil.isEmpty(deptRater)){ raters.add(deptRater); } //更新初始状态:提交 assess.setState(SUBMIT_ASSESS_STATE); dataList.add(assess); } saveOrUpdateBatch(dataList); }如何优化这段代码
这段代码的优化可以从以下几个方面考虑:
1. 可以使用Stream API代替for循环,使代码更简洁。例如:
```java
if (!CollectionUtils.isEmpty(assessList)) {
List<Assess> dataList = assessList.stream()
.peek(assess -> {
String directRater = assess.getDirectRater();
String deptRater = assess.getDeptRater();
if (!StringUtil.isEmpty(directRater)) {
raters.add(directRater);
}
if (!StringUtil.isEmpty(deptRater)) {
raters.add(deptRater);
}
assess.setState(SUBMIT_ASSESS_STATE);
})
.collect(Collectors.toList());
saveOrUpdateBatch(dataList);
}
```
2. 可以使用lambda表达式简化处理直接评估人和部门评估人的逻辑。例如:
```java
if (!CollectionUtils.isEmpty(assessList)) {
List<Assess> dataList = assessList.stream()
.peek(assess -> {
Stream.of(assess.getDirectRater(), assess.getDeptRater())
.filter(StringUtils::isNotEmpty)
.forEach(raters::add);
assess.setState(SUBMIT_ASSESS_STATE);
})
.collect(Collectors.toList());
saveOrUpdateBatch(dataList);
}
```
3. 如果raters集合不需要保留,可以使用flatMap方法将直接评估人和部门评估人合并成一个Stream,然后直接统计评估人数。例如:
```java
long count = assessList.stream()
.flatMap(assess -> Stream.of(assess.getDirectRater(), assess.getDeptRater()))
.filter(StringUtils::isNotEmpty)
.distinct()
.count();
```
以上是一些可以优化这段代码的方法,具体的实现方式取决于代码的实际需求和环境。
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![](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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.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)