我正在编写Java程序,我使用以下代码将一些变量分配给数组:
for(int j=1;j<P.maxNetworkPow;j++){
node.succList[j]=node.succ.succList[j-1];
}
谁知道如何在没有for
循环的情况下将所有值分配给数组?
答案 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