我在一个教程中看到,我可以通过这种方式遍历对象数组:
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.
}
这是可行的,因为
an
是Animals
对象的数组。 for
循环遍历每个Animals
对象,对它们逐一执行一些操作。现在看一下我上面发布的答案(再次在此处重新发布以了解上下文):
Animals[][] an = new Animals[2][2];
for (Animals[] inner : an) {
for (Animals a : inner) {
// Execute code on "Animals" object a
}
}
这是可行的,因为
an
是Animals[]
对象的数组。第一个for
循环遍历每个Animals[]
。届时,您将拥有一组Animals对象,因此可以使用与上述相同的解决方案:单个for
循环遍历每个Animals
对象并对其进行一些操作。关于java - 在Java中遍历二维数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9057261/