如何遍歷可變長度的Java數組。通過可變長度的Java數組進行迭代
我想我會設置一個while循環,但是如何檢測到我已經到達數組的末尾。
我想我想是這樣的[只需要弄清楚如何代表myArray.notEndofArray()]
index = 0;
while(myArray.notEndofArray()){
system.out.println(myArray(index));
index++;
}
如何遍歷可變長度的Java數組。通過可變長度的Java數組進行迭代
我想我會設置一個while循環,但是如何檢測到我已經到達數組的末尾。
我想我想是這樣的[只需要弄清楚如何代表myArray.notEndofArray()]
index = 0;
while(myArray.notEndofArray()){
system.out.println(myArray(index));
index++;
}
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
或
for(String value : array)
{
System.out.println(value);
}
第二個版本是「 for-each「循環,它適用於數組和集合。大多數循環都可以用for-each循環完成,因爲你可能不關心實際的索引。如果你真的關心我們的第一個版本的實際索引。
只是爲了保持完整性你可以做while循環是這樣的:
int index = 0;
while(index < myArray.length)
{
final String value;
value = myArray[index];
System.out.println(value);
index++;
}
但是,你應該使用一個for循環,而不是一個while循環,當你知道的大小(甚至帶有可變長度數組,你知道大小......每次都不一樣)。
數組有一個隱含的成員變量保持長度:
for(int i=0; i<myArray.length; i++) {
System.out.println(myArray[i]);
}
或者,如果使用> = Java5的,使用用於每個循環:
for(Object o : myArray) {
System.out.println(o);
}
你已經具體提到的一個「可變長度數組「,所以現有的兩個答案都沒有(正如我寫的那樣)是非常正確的。
Java沒有任何「可變長度數組」的概念,但它確實具有用於此功能的集合。任何集合(技術上的任何「可迭代」的正宗超)可繞在簡單,如本:
Collection<Thing> things = ...;
for (Thing t : things) {
System.out.println(t);
}
編輯:有可能我誤解了他的意思通過「可變長度」。他可能只是意味着它是一個固定的長度,但不是每個實例都是相同的固定長度。在這種情況下,現有的答案會很好。我不確定是什麼意思。
這裏是一個例子,其中該陣列的長度的循環
import java.util.ArrayList;
public class VariableArrayLengthLoop {
public static void main(String[] args) {
//create new ArrayList
ArrayList<String> aListFruits = new ArrayList<String>();
//add objects to ArrayList
aListFruits.add("Apple");
aListFruits.add("Banana");
aListFruits.add("Orange");
aListFruits.add("Strawberry");
//iterate ArrayList using for loop
for(int i = 0; i < aListFruits.size(); i++){
System.out.println(aListFruits.get(i) + " i = "+i);
if (i == 2) {
aListFruits.add("Pineapple");
System.out.println("added now a Fruit to the List ");
}
}
}
}
推薦使用的執行期間被改變爲一個循環,因爲你知道什麼時候執行將結束 – Woot4Moo 2010-02-25 03:55:52