我在教程中观察,我可以用这种方式遍历一个对象数组:
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)
有谁知道我怎么能克服这个问题.预先感谢您的帮助.
您将需要使用嵌套循环,如下所示:
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对象并逐个执行某些操作.
| 归档时间: |
|
| 查看次数: |
3312 次 |
| 最近记录: |