web-dev-qa-db-ja.com

インスタンスを作成した後にBigIntegerを初期化する方法(コンストラクターを呼び出せない)

BigIntegerのインスタンスを想像してください。インスタンスを作成した後、それを初期化する方法を教えてください。

例えば:

BigInteger t = new BigInteger();

tに値を入れる方法は?

コンストラクターを呼び出せない場合、オブジェクトに値を入れるために何ができますか?

13

他のオブジェクト配列と同じようにBigInteger配列の項目を初期化するときに、特に何が混乱するのかは100%わかりません。例えば。、

  BigInteger t2 [] = new BigInteger[2];

  t2[0] = new BigInteger("2");
  t2[1] = BigInteger.ZERO; // ZERO, ONE, and TEN are defined by constants

  // or

  BigInteger[] t3 = {new BigInteger("2"), BigInteger.ZERO};

編集1:
ああ、私はあなたの問題を理解しました。BigIntegerインスタンスを作成し、後でその値を設定したいとします。答えは文字列の場合と同じです:できません、これは文字列のようなBigIntegerがimmutableであり、一度作成すると変更できないためです。このため、クラスには「セッター」メソッドがありません。 BigIntegervariableの値を変更する方法は、それを新しいBigIntegerインスタンスに設定することです。

Long(または通常の整数)をBigIntegerに変換するには、静的なファクトリメソッドvalueOfを使用します。 BigInteger.valueOf(<i>someInteger</i>)を呼び出すと、指定した整数値を保持する新しいBigIntegerオブジェクトが返されます。 new BigInteger("" + <i>someInteger</i>)を使用して同じものを取得することもできますが、これは扱いにくいです。

5
ncmathsadist

ここではいくつかの例を示します:

    BigInteger t = BigInteger.valueOf(23);
    int i = 66;
    t = BigInteger.valueOf(i);
    t = BigInteger.ZERO
3
Mauro Zallocco

私はこのようなことをしました

//initialize with zero
BigInteger t = BigInteger.ZERO;

//if i is any value that is to be assigned 
t=t.add(BigInteger.valueOf(i));
0
Nikhil Nagaraju