for (PageInfo pageInfo : pageInfoList) { if (pageInfo.getState() == 1) { pageInfo.setState(true); } else { pageInfo.setState(false); } }改成foreach循环
时间: 2024-03-24 12:36:37 浏览: 14
好的,以下是使用 foreach 循环遍历 pageInfoList 并修改 state 的代码实现:
```
for (PageInfo pageInfo : pageInfoList) {
if (pageInfo.getState() == 1) {
pageInfo.setState(true);
} else {
pageInfo.setState(false);
}
}
```
改写为 foreach 循环:
```
for (PageInfo pageInfo : pageInfoList) {
pageInfo.setState(pageInfo.getState() == 1 ? true : false);
}
```
其中,`pageInfoList` 是一个 `List<PageInfo>` 类型的集合,`PageInfo` 类中含有 `getState()` 和 `setState(boolean state)` 方法,可以通过 `pageInfo.getState()` 获取 `state` 值,通过 `pageInfo.setState(boolean state)` 设置 `state` 值。循环遍历 `pageInfoList`,并使用三元运算符判断每一个 `pageInfo` 对象的 `state` 值是否等于 1,如果是,则将 `state` 设置为 `true`,否则设置为 `false`。
相关问题
得到数据保存在pageInfo,请使用java,用foreach循环pageInfo,如果state等于1,将转为ture,否则转为false
好的,根据您的要求,以下是Java代码实现:
```
for (PageInfo pageInfo : pageInfoList) {
if (pageInfo.getState() == 1) {
pageInfo.setState(true);
} else {
pageInfo.setState(false);
}
}
```
其中,假设`pageInfoList`是一个`List<PageInfo>`类型的集合,`PageInfo`类中含有`getState()`和`setState(boolean state)`方法,可以通过`pageInfo.getState()`获取`state`值,通过`pageInfo.setState(boolean state)`设置`state`值。循环遍历`pageInfoList`,判断每一个`pageInfo`对象的`state`值是否等于1,如果是,则将`state`设置为`true`,否则设置为`false`。
优化以下代码: for (DqExecuteResult dqExecuteResult : dqExecuteResults) { // 一致性 if (RuleTemplateName.MULTI_TABLE_ACCURACY.getCode().equals(dqExecuteResult.getRuleName())) { coherenceTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { coherenceSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ coherenceSuccess += dqExecuteResult.getTotal(); } } // 完备性 else if(RuleTemplateName.NULL_CHECK.getCode().equals(dqExecuteResult.getRuleName())){ completeTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { completeSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ completeSuccess += dqExecuteResult.getTotal(); } } // 有效性 else { effectiveTotal += dqExecuteResult.getTotal(); if (DqTaskState.FAILURE.getCode() == dqExecuteResult.getState()) { effectiveSuccess += (dqExecuteResult.getTotal() - Math.round(dqExecuteResult.getStatisticsValue())); } else{ effectiveSuccess += dqExecuteResult.getTotal(); } } }
可以考虑以下优化:
1. 将重复的代码提取出来,避免重复书写,可以提高代码的可读性和维护性;
2. 可以使用 switch-case 语句替代 if-else if 语句,使代码更加简洁;
3. 可以将常量提取出来,避免在代码中多次出现,提高可维护性。
下面是优化后的代码:
```
final String MULTI_TABLE_ACCURACY = RuleTemplateName.MULTI_TABLE_ACCURACY.getCode();
final String NULL_CHECK = RuleTemplateName.NULL_CHECK.getCode();
for (DqExecuteResult dqExecuteResult : dqExecuteResults) {
String ruleName = dqExecuteResult.getRuleName();
int state = dqExecuteResult.getState();
int total = dqExecuteResult.getTotal();
double statisticsValue = dqExecuteResult.getStatisticsValue();
switch (ruleName) {
case MULTI_TABLE_ACCURACY:
coherenceTotal += total;
coherenceSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
break;
case NULL_CHECK:
completeTotal += total;
completeSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
break;
default:
effectiveTotal += total;
effectiveSuccess += (state == DqTaskState.FAILURE.getCode()) ? (total - Math.round(statisticsValue)) : total;
}
}
```