Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在foreach循环中填充数组_Java_Arrays - Fatal编程技术网

Java 是否可以在foreach循环中填充数组

Java 是否可以在foreach循环中填充数组,java,arrays,Java,Arrays,我试图用一个名为ted的示例项填充子网的数组。我打开了调试器,并看到数组中的项即使在存在for循环后仍保持为null。我可以看到currentItem被设置为等于ted,但它没有进入实际数组。我尝试在for each循环中初始化currentItem,看看这是否有帮助,但没有 int startHost = 0; int endHost = 0; int broadcast = 0; int subnetNumber = 0; String fullSub

我试图用一个名为ted的示例项填充子网的数组。我打开了调试器,并看到数组中的项即使在存在for循环后仍保持为null。我可以看到currentItem被设置为等于ted,但它没有进入实际数组。我尝试在for each循环中初始化currentItem,看看这是否有帮助,但没有

    int startHost = 0;
    int endHost = 0;
    int broadcast = 0;
    int subnetNumber = 0;
    String fullSubnetAddress = "Start address";
    String fullBroadcastAddress = "Broadcast Address";
    String fullStartHost = "startHost";
    String fullEndHost = "endHost";

    SubnetItem ted = new SubnetItem(subnetNumber, fullBroadcastAddress, fullStartHost, fullEndHost, fullBroadcastAddress);


    SubnetItem[] subnetArray = new SubnetItem[this.totalSubnets];

    for (SubnetItem currentSubnet : subnetArray)
    {
        currentSubnet = new SubnetItem();
        currentSubnet = ted;

    }

    System.out.println("Pause");

不能用foreach样式的循环填充这样的数组。您需要使用带有索引的旧式循环:

for (int i = 0; i < subnetArray.length; i++) {
    subnetArray[i] = ted;
}

不能用foreach样式的循环填充这样的数组。您需要使用带有索引的旧式循环:

for (int i = 0; i < subnetArray.length; i++) {
    subnetArray[i] = ted;
}

为什么我不能使用for each循环来填充数组?谢谢你的帮助!因为循环变量没有直接指向数组,所以它只是数组中值的一个副本。如果修改副本,则不会修改原始数组。因此,for each循环不能用于修改数组中的任何项?不,不能使用foreach循环修改数组中的元素。为什么不能使用for each循环填充数组?谢谢你的帮助!因为循环变量没有直接指向数组,所以它只是数组中值的一个副本。如果修改副本,则不会修改原始数组。因此,for each循环不能用于修改数组中的任何项?不,不能使用foreach循环修改数组中的元素。