我在一个教程中看到,我可以通过这种方式遍历对象数组:

     Animals[] an = new Animals[2];

         for (Animals a:an){
                 .
                 .
         }


但是现在我想遍历二维数组,当我使用此代码时,我遇到了一个问题(说:不兼容的类型
              必填:appl1.Animals
              foundLappl1.Animals [])。当我使用此代码

   Animals[][] an = new Animals[2][2];

      for (Animals a:an){
             .
             .
       }


有谁知道我该如何克服这个问题。预先感谢您的帮助。

最佳答案

您将需要使用嵌套循环,如下所示:

Animals[][] an = new Animals[2][2];

for (Animals[] inner : an) {
    for (Animals a : inner) {
        // Execute code on "Animals" object a
    }
}




为什么这样做?

查看您的第一个示例(为方便起见,在此重新发布):

Animals[] an = new Animals[2];

for (Animals a : an) {
    // Do stuff here.
}


这是可行的,因为anAnimals对象的数组。 for循环遍历每个Animals对象,对它们逐一执行一些操作。

现在看一下我上面发布的答案(再次在此处重新发布以了解上下文):

Animals[][] an = new Animals[2][2];

for (Animals[] inner : an) {
    for (Animals a : inner) {
        // Execute code on "Animals" object a
    }
}


这是可行的,因为anAnimals[]对象的数组。第一个for循环遍历每个Animals[]。届时,您将拥有一组Animals对象,因此可以使用与上述相同的解决方案:单个for循环遍历每个Animals对象并对其进行一些操作。

关于java - 在Java中遍历二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9057261/

10-12 17:41