Как я выполняю итерации по массиву Java переменной длины.
Я предполагаю, что установил бы некоторое время цикл, но как я обнаружу, что достиг конца массива.
Я предполагаю, что хочу что-то вроде этого [просто должен выяснить, как представить 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 each:
for(Object o : myArray) {
System.out.println(o);
}
Вы конкретно упомянули "массив переменной длины" в вашем вопросе, таким образом, ни один из существующих двух ответов (поскольку я пишу это) не совершенно правилен.
Java не имеет никакого понятия "массива переменной длины", но это действительно имеет Наборы, которые служат в этой способности. Любой набор (технически любой "Повторяемый", супертип Наборов) может быть циклично выполнен по так просто:
Collection<Thing> things = ...;
for (Thing t : things) {
System.out.println(t);
}
РЕДАКТИРОВАНИЕ: возможно, что я неправильно понял то, что он подразумевал под 'переменной длиной'. Он, возможно, просто подразумевал, что это - фиксированная длина, но не каждый экземпляр та же фиксированная длина. В этом случае существующие ответы были бы прекрасны. Я не уверен, что было предназначено.