Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么';这里更合适的是:Arrays.copyOfRange()还是普通循环?_Java_Biginteger_Openjdk - Fatal编程技术网

Java 什么';这里更合适的是:Arrays.copyOfRange()还是普通循环?

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

这里的第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];
return result;
int[]结果=新的int[intLen];

对于(int i=0;i我不会对openjdk实现进行质疑,除非我花了一些时间分析并弄清楚他们可能做出决定的原因(他们可能是错误的,但我的快速判断更可能是错误的)


然而,一般来说,使用已建立的库几乎总是比使用自己的自滚实现更好。

我选择库方法不是为了效率,而是为了干净的代码

以下是有关复制阵列的一些信息


我从这个链接中得到的是,如果你不需要速度,就不要费心去改变它。引入错误的风险和单调乏味是不值得的。

库方法看起来更干净,可能更快。也许这段代码是在1.6之前编写的。
Arrays.copyOfRange()
从1.6开始才出现。