3

アプリケーションを考えてみましょう

  1. Stringテキスト ファイルから数千の値を読み取ります。
  2. 数値を表す値 (単純な整数から仮数付きの科学表記法で書かれた非常に大きな値まで) を (正規表現の一致によって) 選択します。
  3. String数値を表す値ごとに、BigDecimalオブジェクトをインスタンス化します (1 秒あたり数千の Bigdecimal オブジェクトの合計レートで)。
  4. インスタンス化された各BigDecimalオブジェクトを使用して、以降の処理を行います。

上記のシナリオを考えると、明らかに各BigDecimalオブジェクトのインスタンス化がパフォーマンスに影響を与えます。

BigDecimalこれらのオブジェクトを null 以外の String からインスタンス化する 1 つの方法strは次のとおりです。

BigDecimal number = new BigDecimal(str.toCharArray(), 0, str.length()));

これは、BigDecimal のStringコンストラクターOracleJDK.

BigDecimalそのような文字列からオブジェクトをインスタンス化するより高速な方法はありますか、または別のアプローチを介してですか?

4

3 に答える 3

1

違いが問題になる可能性は低いことに同意しますが、Java の将来のバージョンでは多くの一般的な数値がキャッシュされる可能性が高いため、 valueOfを使用します。

于 2012-11-03T14:54:23.960 に答える
0

同じである可能性が高い数値が多数ある場合は、値HashMap<String, BigDecimal>の「キャッシュ」のBigDecimal方が高速である可能性があります。

于 2012-11-26T20:12:42.240 に答える