迭代int数组

时间:2017-10-15 23:30:16

标签: java arrays iterator

有关于迭代int []的问题。 假设我们创建了int []:

int[] list = new int[5];

我们想要填充它之后。我知道可以使用下一段代码来完成它:

for(int x = 0; x < list.length; x++){
        list[x] = x;
}

但我真的很想知道下一个:

for(int x : list){
        list[x] = x;
}

它不起作用,即使我将x++;放入for循环体x每次迭代都是0。

我问不是因为没有它我不会活着,我仍然可以先使用for循环,但我想知道并使用更多&#34; new&#34; - &#34; clean& #34; - &#34;更好&#34;方式,如果这样说好,可以迭代[]。 提前谢谢。

3 个答案:

答案 0 :(得分:2)

总是:

int[] list = IntStream.range(0, 5).toArray();

答案 1 :(得分:0)

在你的第二个版本的循环x中不是索引,它是存储的值的一个。您无法从增强型for循环中更改此值,因为

  1. 您没有可用的索引
  2. 增强的for循环禁止您在阅读时修改列表中的项目。虽然这个限制主要是删除问题,但它也适用于原始或不可变类型,如String或任何原始包装器。

答案 2 :(得分:-1)

您无法使用增强型for循环修改数组。 x表示每个元素值,而不是索引。因此list[x] = x可能是荒谬的。如果需要修改元素,请使用带索引变量的经典循环。