Аналог StringBuilder для BigDecimal - PullRequest
2 голосов
/ 07 октября 2009

У меня есть список BigDecimals для суммирования. Если бы они были Strings для объединения, я бы использовал StringBuilder для сокращения создания объектов. Есть ли что-то подобное для BigDecimal? Или, может, мне не стоит об этом беспокоиться? Стоит ли прилагать усилия для оптимизации создания BigDecimal?

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

Ответы [ 2 ]

8 голосов
/ 07 октября 2009

Нет такого аналога в Java SE.

И вопрос о том, стоит ли прилагать к этому усилий: Вы должны изучить это только , если этот код доказал, что является узким местом производительности.

7 голосов
/ 07 октября 2009

Я бы процитировал Дональда Кнута здесь:

«Мы должны забыть о маленьком эффективность, скажем, около 97% время: преждевременная оптимизация корень зла. "

Не волнуйтесь, пока это не станет измеримой (!) Проблемой. Я не эксперт по производительности BigDecimal, но копирование char [], которое выполняется во время конкатенации строк, значительно увеличивает издержки, это точно.

...