除以 Java 后修改 bigInteger

Modifying bigInteger after dividing Java

我在这里看了很多,还是不太明白为什么这行是错误的:

ArrayList <BigInteger> data = new ArrayList();
int [] primes = new int[25];    
...
// Some initializing
...
data.get(i) = data.get(i).divide( BigInteger.valueOf( primes[place] ) ); //<----
...
// Rest of the code

必填:变量; 发现:价值..我做错了什么?

= 仅适用于分配变量、字段和数组元素。

您可能想打电话给 set

data.set(i, data.get(i).divide(...etc...));

首先,你应该修复你的 Raw Type (and I'd prefer the List 接口)像

List<BigInteger> data = new ArrayList<>();

那么你需要使用 set 因为你不能像那样分配给 get 的 return 值。

data.set(i, data.get(i).divide(BigInteger.valueOf(primes[place])));

此外,值得注意的是 BigInteger(s) 是(根据 Javadoc)不可变的任意精度整数