biginteger - 这里 : Arrays. copyOfRange() 还是普通循环更合适?

标签 biginteger java

第 331 行 ( openjdk's MutableBigInteger source ) 定义了函数 toIntArray()。一般来说,MutableBigInteger 是一个数组,例如 {0, 0, 0, 0x12345678, ..., 0xffffffff, 0, 0, 0},带有变量 offset 和 intLen 定义非零值(数组的实际负载)的开始和结束位置。因此,该函数如下所示:

int[] result = new int[intLen];
for(int i=0; i<intLen; i++)
    result[i] = value[offset+i];
return result;

由于包已经导入了Arrays实用程序类,用Arrays.copyOfRange(value, offset, intLen)替换所有for循环不是更好(更快?规范吗?) ;

一般来说,我的问题是关于所有相关情况:在处理此类情况时使用库方法是否更好,或者没有实际差异并且会产生几乎相同效率的可执行文件?

最佳答案

我不会对 openjdk 的实现争论不休,直到我花了一些时间分析并弄清楚他们为什么会做出这样的决定(他们可能是错的,但我的快速判断更有可能是错误的)。

但是,作为一项规则,使用已建立的库几乎总是比您自己的自制实现更好。

关于biginteger - 这里 : Arrays. copyOfRange() 还是普通循环更合适?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622601/

相关文章:

java - 如何为 java 中的每个 httprequest 使用线程池中的线程?

c# - BigInteger 解析八进制字符串?

java - 从 int 值创建 BigInteger 实例的最有效方法是什么?

java - 如何根据限制在java中拆分字符串

java - 通过 jdbc 通过准备好的语句传递 SQL 命令时出错

java - 使用 tcpdump 记录失败的 HTTP 请求

java - 如何使用 Java 分隔符模式?

php - PHP 中有 BigInteger 类吗?

java - 如何将 String 转换为 BigInteger 表示并返回 Java?

java - 计算大数java的更快方法