我有一个类似于下面的代码片段,
public ArrayList getReport(reportJDOList,accountType)
{
String abc = "";
for(ReportJDO reportJDO : reportJDOList)
{
if(accountType.equals("something")
abc = reportJDO.getThis();
else
abc = reportJDO.getThat();
//somecode goes here
}
returning List;
}
因为我知道迭代前 accountType 的值,所以我不希望对列表中的每个条目进行此检查,因为如果实例的 reportJDOList 的大小为 10000,它将导致大量检查。我们如何避免这件事发生?提前致谢:)
最佳答案
您确实可以执行一次检查并实现 2 个循环:
if(accountType.equals("something") {
for(ReportJDO reportJDO : reportJDOList) {
abc = reportJDO.getThis();
}
} else {
for(ReportJDO reportJDO : reportJDOList) {
abc = reportJDO.getThat();
}
}
显然,您可以通过以下任一方法改进您的设计
- 将循环分成两种不同的方法
- 使用命令模式,即在不同的命令中实现循环体并执行循环。
- 使用 Guava 的函数(只是对#2 的改进)
- 使用 Java 8 流。
关于java - 如何从循环中删除 if else 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34016883/