首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >遍历可变长度数组

遍历可变长度数组
EN

Stack Overflow用户
提问于 2010-02-25 11:52:50
回答 3查看 120.2K关注 0票数 21

如何遍历长度可变的Java数组?

我想我会设置一个while循环,但是我如何检测我已经到达了数组的末尾呢?

我想我想要这样的东西,只是需要弄清楚如何表示myArray.notEndofArray()

代码语言:javascript
复制
index = 0;
while(myArray.notEndofArray()){
  system.out.println(myArray(index));
  index++;
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-02-25 11:53:51

代码语言:javascript
复制
for(int i = 0; i < array.length; i++)
{
    System.out.println(array[i]);
}

代码语言:javascript
复制
for(String value : array)
{
    System.out.println(value);
}

第二个版本是"for-each“循环,它处理数组和集合。大多数循环都可以使用for-each循环来完成,因为您可能并不关心实际的索引。如果你真的关心实际的索引,我们先看第一个版本。

为了完整起见,你可以这样做while循环:

代码语言:javascript
复制
int index = 0;

while(index < myArray.length)
{
  final String value;

  value = myArray[index];
  System.out.println(value);
  index++;
}

但是当你知道循环的大小时,你应该使用for循环而不是while循环(即使使用可变长度的数组,你也知道它的大小……它只是每次都不同而已)。

票数 54
EN

Stack Overflow用户

发布于 2010-02-25 11:55:46

数组有一个隐式成员变量来保存长度:

代码语言:javascript
复制
for(int i=0; i<myArray.length; i++) {
    System.out.println(myArray[i]);
}

或者,如果使用>=java5,则使用for each循环:

代码语言:javascript
复制
for(Object o : myArray) {
    System.out.println(o);
}
票数 5
EN

Stack Overflow用户

发布于 2018-03-09 02:25:25

下面是一个示例,其中数组的长度在循环执行期间被更改

代码语言:javascript
复制
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 "); 
                }
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2331509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档