Java 用另一个数组中的元素填充数组

Java 用另一个数组中的元素填充数组,java,arrays,element,fill,Java,Arrays,Element,Fill,嘿,我想从另一个数组的元素填充一个数组。 例如(下文) 数组b应该按照数组b的顺序填充元素。 有什么办法吗?我只知道Arrays.fill(但它是针对1个元素的)。 表a是可变的,不是静态的 int a[1,2,3,4]; int b[] = new int[100]; int b[] = {1,2,3,4,1,2,3,4,...} 您可以使用System.arraycopy()方法。它将源阵列从特定的起始位置复制到目标阵列 e、 g.复制数组a 25次以填写b int[] a = {1,

嘿,我想从另一个数组的元素填充一个数组。 例如(下文) 数组b应该按照数组b的顺序填充元素。 有什么办法吗?我只知道Arrays.fill(但它是针对1个元素的)。 表a是可变的,不是静态的

int a[1,2,3,4];

int b[] = new int[100];
int b[] = {1,2,3,4,1,2,3,4,...}

您可以使用
System.arraycopy()
方法。它将源阵列从特定的起始位置复制到目标阵列

e、 g.复制数组a 25次以填写b

int[] a = {1, 2, 3, 4};
int[] b = new int[100];
for (int i = 0; i < b.length; i += a.length) {
    System.arraycopy(a, 0, b, i, 4);
}
int[]a={1,2,3,4};
int[]b=新的int[100];
对于(int i=0;i
您可以使用
System.arraycopy()
方法。它将源阵列从特定的起始位置复制到目标阵列

e、 g.复制数组a 25次以填写b

int[] a = {1, 2, 3, 4};
int[] b = new int[100];
for (int i = 0; i < b.length; i += a.length) {
    System.arraycopy(a, 0, b, i, 4);
}
int[]a={1,2,3,4};
int[]b=新的int[100];
对于(int i=0;i
我可以想象一个简单的for循环,它在第一个数组中循环并添加到第二个数组中,这将是一个基本的解决方案,而无需调用您可能不熟悉的方法

    int a[1,2,3,4];
    int b[]  = new int[100];
    int j = 0;
    for (int i = 0; i < b.length; i++) 
    {
       if(j == 4) 
       { 
           j = 0; 
       }
       int n = a[j];
       b[i] = n;
       j++; 
    }
inta[1,2,3,4];
int b[]=新int[100];
int j=0;
for(int i=0;i
或者,如果数组“a”的大小发生变化,您可以让它检查数组长度

inta[1,2,3,4];
int b[]=新int[100];
int j=0;
for(int i=0;i
我可以想象一个简单的for循环,它在第一个数组中循环并添加到第二个数组中,这将是一个基本的解决方案,而无需调用您可能不熟悉的方法

    int a[1,2,3,4];
    int b[]  = new int[100];
    int j = 0;
    for (int i = 0; i < b.length; i++) 
    {
       if(j == 4) 
       { 
           j = 0; 
       }
       int n = a[j];
       b[i] = n;
       j++; 
    }
inta[1,2,3,4];
int b[]=新int[100];
int j=0;
for(int i=0;i
或者,如果数组“a”的大小发生变化,您可以让它检查数组长度

inta[1,2,3,4];
int b[]=新int[100];
int j=0;
for(int i=0;i
这里有一种使用流的方法

int b[] = Stream.iterate(0, i -> i == a.length - 1 ? 0 : i + 1)
            .limit(100)
            .mapToInt(i -> a[i])
            .toArray();
Stream.iterate(0,i->i==a.length-1?0:i+1)
: 以0作为种子开始,并增量生成一个整数流。一旦索引到达数组的末尾,我们就会重置/重新启动

limit(100)
:限制为100个元素,因为流的源是无限的

.mapToInt(i->a[i])
:通过从数组a获取索引处的元素,将传入的整数索引转换为int


.toArray()
:将单个元素收集到一个
int[]

以下是一种使用流的方法

int b[] = Stream.iterate(0, i -> i == a.length - 1 ? 0 : i + 1)
            .limit(100)
            .mapToInt(i -> a[i])
            .toArray();
Stream.iterate(0,i->i==a.length-1?0:i+1)
: 以0作为种子开始,并增量生成一个整数流。一旦索引到达数组的末尾,我们就会重置/重新启动

limit(100)
:限制为100个元素,因为流的源是无限的

.mapToInt(i->a[i])
:通过从数组a获取索引处的元素,将传入的整数索引转换为int


.toArray()
:将单个元素收集到一个
int[]

您可以使用for循环和模运算符完成此操作:

    for (int i = 0; i < b.length; i ++) {
        b[i] = a[i % a.length];
    }
for(int i=0;i
您可以使用for循环和模运算符完成此操作:

    for (int i = 0; i < b.length; i ++) {
        b[i] = a[i % a.length];
    }
for(int i=0;i
你想在b N时间内重复a,这是你想要的吗?不,用a元素填充b到b.lenth。你想在b N时间内重复a,这是你想要的吗?不,用a元素填充b到b.lenth。如果“b”的长度不能被“a”的长度平均整除,这将抛出异常。如果“b”的长度不可整除,这将抛出异常不能被“a”的长度平均整除。