将所有值分配给整个数组

时间:2016-08-19 08:18:31

标签: java arrays

我正在编写Java程序,我使用以下代码将一些变量分配给数组:

for(int j=1;j<P.maxNetworkPow;j++){
    node.succList[j]=node.succ.succList[j-1];
}

谁知道如何在没有for循环的情况下将所有值分配给数组?

3 个答案:

答案 0 :(得分:5)

使用Arrays.fill(node.succList, value) javadoc。 如果你想用一个值填充数组。

如果你想从另一个启动数组,请使用

System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) javadoc

答案 1 :(得分:1)

正如用户khelwood指出的那样,您可以使用System.arraycopy将特定范围的元素从一个数组复制到另一个数组。

方法签名是:

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
  • src是您要复制的源数组
  • srcPos是源数组中的起始位置
  • dest是您要将数据复制到
  • 的目标数组
  • destPos是目标数组中的起始位置
  • length是复制的数组元素数

对于你的情况,它将是

System.arraycopy(node.succ.succList, 0, node.succList, 1, P.maxNetworkPow - 1);

这意味着将P.maxNetworkPow - 1元素从node.succ.succList的起始索引0复制到数组node.succList的起始索引1

你必须要小心,P.maxNetworkPow不大于每个数组的长度,否则你会获得IndexOutOfBoundsException

答案 2 :(得分:1)

使用System.arraycopy。示例如下:

import java.lang.*;

public class SystemDemo {

   public static void main(String[] args) {

   int arr1[] = { 0, 1, 2, 3, 4, 5 };
   int arr2[] = { 5, 10, 20, 30, 40, 50 };

   // copies an array from the specified source array
   System.arraycopy(arr1, 0, arr2, 0, 1);
   System.out.print("array2 = ");
   System.out.print(arr2[0] + " ");
   System.out.print(arr2[1] + " ");
   System.out.print(arr2[2] + " ");
   System.out.print(arr2[3] + " ");
   System.out.print(arr2[4] + " ");
   }
}

将输出: array2 = 0 10 20 30 40