在for循环中表示整个数组的正确方法是什么?

时间:2015-01-06 04:43:08

标签: java arrays for-loop

例如,假设我创建了一个单维数组并将数组启动到100.如果我想能够使用数组的所有值,就像在for循环中一样,我该怎么做?我在下面找到了两种方法,但我不确定推荐哪种方法。还有什么不同之处吗?

int[] list = new int[100];
for (int i = 0; i < list.length; i++) 

for (int i = 0; i < 100; i++) 

这两种语法中哪一种更常用?

5 个答案:

答案 0 :(得分:10)

这要好得多:

for (int i = 0; i < list.length; i++)

如果你改变主意,并决定列表的长度必须是150,那么你的其余代码仍然有效。

如果更改数组的长度,则另一个选项要求您更改所有for循环。

实际上还没有任何其他差异。

编辑:正如Manoj Sharma中提到的his answer一样,您可以做另外的事情:

for (int myInt : list)

这将为您进行迭代,但您无法在循环中获取索引。

我提到这一点是为了完整,但是如果你觉得这很有帮助,请提出他的答案!

答案 1 :(得分:1)

for (int i = 0; i < list.length; i++)这是动态条件处理,它会根据你的数组长度而改变。

for (int i = 0; i < 100; i++)这是静态条件处理,如果有数千个for循环,则需要更改每个循环条件。

Evey时间确保您避免在应用程序中进行硬编码。

答案 2 :(得分:1)

@Anubian Noob给出的答案很好。但是java5 forward java为每个循环提供了增强功能,远远优于其他循环。即使这种方法没有错误机会。看下面:

for(int i: list){
System.out.println(i);
}

这将循环遍历整个数组并显示数组中的所有元素存储。您也可以将此方法用于多维数组。

答案 3 :(得分:0)

最好将数组的长度存储在变量中,然后使用它。而不是在循环中硬编码或每次循环运行时找到它。

var arraySize = yourArray.length;

for(i;i<arraySize; i++){
//your code here.
}

答案 4 :(得分:0)

在Java 8中,您最好学习使用流。它们更直观,您无需担心尺寸等问题。

例如:

int list[] = {4, 7, 3, 9, 11};
Arrays.stream(list)...

在这种情况下,Arrays.stream知道您已经创建了一个IntStream,因此您可以获得最大值,最小值,排序值,总和等。

现在你需要更少的循环。