在java中多次将数组复制到另一个数组中
我想多次将数组从一个整数数组复制到另一个数组中在java中多次将数组复制到另一个数组中,java,Java,我想多次将数组从一个整数数组复制到另一个数组中 int a[6]={1,2,3}; int b[]=new int[12]; for(int i=0;i<12;i++) { b[i]=a[i]; System.out.println(b[i]); } 我应该如何将所有元素从a[]复制到b[]以达到我想要的次数。您可以使用模数运算符: for(int i=0;i<12;i++) { b[i]=a[i%a.length]; System.out.println(b[i]
int a[6]={1,2,3};
int b[]=new int[12];
for(int i=0;i<12;i++)
{
b[i]=a[i];
System.out.println(b[i]);
}
我应该如何将所有元素从a[]复制到b[]以达到我想要的次数。您可以使用模数运算符:
for(int i=0;i<12;i++)
{
b[i]=a[i%a.length];
System.out.println(b[i]);
}
for(int i=0;i做你想做的事(我能想到的)最有效的方法就是复制批处理
我们得到了两个输入阵列:
int a[] = {1, 2, 3};
int b[] = new int[12];
我们要做的是将第一个数组复制到第二个数组中,直到第二个数组被填充为止
第一批很简单。只需将第一个数组复制一次到第二个数组中
System.arraycopy(a, 0, b, 0, a.length);
现在我们将第二个数组中的数据附加到第二个数组的自由字段中
int usedSize = a.length;
while (usedSize < b.length) {
System.arraycopy(b, 0, b, usedSize, Math.min(b.length - usedSize, usedSize);
usedSize *= 2;
}
因此,它减少了所需的复制步骤,并且即使对于大型阵列也能非常快地工作。System.arraycopy
最终是复制阵列内容的最快方法。您知道此代码还不能工作吗?您正在访问a[6]的索引
例如,这超出了数组的大小。另外,数组初始化不正确。现在准备一个好的答案:您真的需要println
输出吗?这将阻止批量复制。您没有收到我的问题,先生。请查看我的答案。这可能会澄清我的问题。int a[6]={1,2,3};int b[]=新整数[12];用于(int i=0;i你得到了两个答案。如果你想要println
输出,答案是正确的。这与我的建议不符。如果你想将数据从数组a
传输到b
,这两个答案都有效。最简单和最接近OP的方法。+1如果你把a.length
从循环中拉出,它也会减少如果这是在足够高的迭代次数下完成的,那么延迟可能很重要。
int usedSize = a.length;
while (usedSize < b.length) {
System.arraycopy(b, 0, b, usedSize, Math.min(b.length - usedSize, usedSize);
usedSize *= 2;
}
{1,2,3,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x}
{1,2,3,1,2,3,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x}
{1,2,3,1,2,3,1,2,3,1,2,3,x,x,x,x,x,x,x,x,x,x,x,x}
{1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3}