第 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/