加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java可以在循环中优化“变异”BigInteger操作吗?

发布时间:2020-12-14 17:47:22 所属栏目:Java 来源:网络整理
导读:我需要处理比很多长((10 ^ 200))大的数字,所以我使用BigIntegers.我执行的最常见的操作是将它们添加到累加器,例如: BigInteger A = new BigInteger("0");for(BigInteger n : nums) { A = A.add(n);} 当然,制作破坏性操作的副本是相当浪费的(只要有足够的缓
我需要处理比很多长((10 ^ 200))大的数字,所以我使用BigIntegers.我执行的最常见的操作是将它们添加到累加器,例如:
BigInteger A = new BigInteger("0");
for(BigInteger n : nums) {
    A = A.add(n);
}

当然,制作破坏性操作的副本是相当浪费的(只要有足够的缓冲区可用),所以我想知道Java是否可以以某种方式进行优化(我听说有一个MutableBigInteger类没有被math.java公开)或者我是否应该写我自己的BigInteger类.

解决方法

是的,有一个java.math.MutableBigInteger类,BigInteger用于计算密集型操作.不幸的是,它被声明为包私有,所以你不能使用它. Apache Commons库中还有一个“MutableBigInteger”类,但它只是BigInteger的一个可变包装器,对您而言无济于事.

I was wondering if Java can optimize this somehow …

没有…没有承受上述.

or whether I should just write my own BigInteger class.

这是一种方法

另一个是要下载OpenJDK源码,找到java.math.MutableBigInteger的源代码,更改其包名和访问权限,并将其合并到代码库中.唯一的障碍是OpenJDK是根据GPL(GPL-2我认为)进行许可的,如果您使用修改的类来分发代码,那么它就有影响.

也可以看看:

> What is the purpose of java.math.MutableBigInteger?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读