用于BigDecimal的StringBuilder的模拟

Tad*_*pec 2 java optimization bigdecimal

我有一个BigDecimals列表要加总.如果它们是串联连接,我会使用StringBuilder来减少对象的创建.BigDecimal有类似的东西吗?或许我不应该为此烦恼?BigDecimal创作的优化值得付出努力吗?

BigDecimal result = BigDecimal.ZERO;
for (CashReportElement element : getReportElementSet()) {
    if (element.getCurrencyCode().equals(currencyCode)) {
        result = result.add(element.getSum());
    }
}
return result;
Run Code Online (Sandbox Code Playgroud)

Joa*_*uer 8

在Java SE中没有这样的模拟.

关于它是否值得付出努力的问题:只有当这个代码被证明是性能瓶颈时,你才应该研究这个问题.


sfu*_*ger 7

我在这里引用Donald Knuth:

"我们应该忘记小的效率,比如大约97%的时间:过早的优化是所有邪恶的根源."

不要担心,直到它真的是一个可衡量的(!)问题.我不是BigDecimal性能的专家,但是在字符串连接期间完成的char []的复制是一个更大的开销,这是肯定的.