Java 什么';这里更合适的是:Arrays.copyOfRange()还是普通循环?
这里的第331行()定义了函数toIntArray()。一般来说,MutableBigInteger是一个数组,例如可以是Java 什么';这里更合适的是:Arrays.copyOfRange()还是普通循环?,java,biginteger,openjdk,Java,Biginteger,Openjdk,这里的第331行()定义了函数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]; ret
{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;
int[]结果=新的int[intLen];
对于(int i=0;i我不会对openjdk实现进行质疑,除非我花了一些时间分析并弄清楚他们可能做出决定的原因(他们可能是错误的,但我的快速判断更可能是错误的)
然而,一般来说,使用已建立的库几乎总是比使用自己的自滚实现更好。我选择库方法不是为了效率,而是为了干净的代码
以下是有关复制阵列的一些信息
我从这个链接中得到的是,如果你不需要速度,就不要费心去改变它。引入错误的风险和单调乏味是不值得的。库方法看起来更干净,可能更快。也许这段代码是在1.6之前编写的。Arrays.copyOfRange()
从1.6开始才出现。