在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}