遍历java中的二维数组

arn*_*eki 1 java

我在教程中观察,我可以用这种方式遍历一个对象数组:

     Animals[] an = new Animals[2];

         for (Animals a:an){
                 .
                 .
         }
Run Code Online (Sandbox Code Playgroud)

但现在我想遍历一个二维数组,当我使用这个代码时,我有一个问题(说:需要不兼容的类型:appl1.Animals foundLappl1.Animals []).当我使用这个代码

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

      for (Animals a:an){
             .
             .
       }
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能克服这个问题.预先感谢您的帮助.

Jon*_*uis 5

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

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

for (Animals[] inner : an) {
    for (Animals a : inner) {
        // Execute code on "Animals" object a
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这样做?

看看你的第一个例子(为方便起见,这里重新发布):

Animals[] an = new Animals[2];

for (Animals a : an) {
    // Do stuff here.
}
Run Code Online (Sandbox Code Playgroud)

这是因为an是一个Animals对象数组.在for通过每个循环迭代Animals对象,执行对它们一个接一个一些行动.

现在看看我上面发布的答案(再次,在这里转发上下文):

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

for (Animals[] inner : an) {
    for (Animals a : inner) {
        // Execute code on "Animals" object a
    }
}
Run Code Online (Sandbox Code Playgroud)

这是因为an是一个Animals[]对象数组.第一个for循环遍历每个循环Animals[].此时,您有一个Animals对象数组,因此您可以使用与上面相同的解决方案:单个for循环迭代每个Animals对象并逐个执行某些操作.