Java 用于BigDecimal的StringBuilder模拟

Java 用于BigDecimal的StringBuilder模拟,java,optimization,bigdecimal,Java,Optimization,Bigdecimal,我有一个大小数列表要求和。如果它们是要连接的字符串,我将使用StringBuilder来减少对象创建。BigDecimal有类似的功能吗?或者也许我不该为此烦恼?BigDecimal创建的优化值得付出努力吗 BigDecimal result = BigDecimal.ZERO; for (CashReportElement element : getReportElementSet()) { if (element.getCurrencyCode().equals(currencyCo

我有一个大小数列表要求和。如果它们是要连接的字符串,我将使用StringBuilder来减少对象创建。BigDecimal有类似的功能吗?或者也许我不该为此烦恼?BigDecimal创建的优化值得付出努力吗

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

我在这里引用Donald Knuth的话:

“我们应该忘记小问题 效率,比如说大约97%的 时间:过早优化是关键 万恶之源。”


在它真正成为一个可测量的问题之前不要担心。我不是BigDecimal性能方面的专家,但可以肯定的是,在字符串连接期间复制char[]的开销要大得多。

在JavaSE中没有类似的功能


关于是否值得投入精力的问题:只有当这段代码被证明是性能瓶颈时,您才应该对此进行研究。

MutableBigDecimal被标记为Commons Lang 3.0()的修复程序,但与大多数Commons项目一样,活动似乎已经完全停止。