我有一个类似于下面的代码片段,

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,它将导致大量检查。我们如何消除这种情况的发生?提前致谢 :)

最佳答案

如果要保存字符串比较,请在循环之前进行一次,并将结果存储在布尔变量中:

String abc = "";
boolean isThis = accountType.equals("something");
for(ReportJDO reportJDO : reportJDOList) {
    abc = isThis ? reportJDO.getThis() : reportJDO.getThat();
    //somecode goes here
}

07-24 09:19