如果我试图找到我在java中迭代一个foreach循环的次数,那么有更好的方法吗?
int i = 0;
for (Button button : levelBtns) {
button = new Button(160, 40 + (i * 50), 100, 40);
i++;
}
我知道我可以使用普通的for循环并拥有一个迭代器,我,但我只是想知道是否有一种更优雅的方式来做一个foreach.Thanks提前:)
编辑:正如Jon Skeet指出的那样,上面的代码将新的按钮实例分配给迭代变量。哎呀。根据其他评论,我认为最实用的是正常循环。这是我要去的版本。谢谢大家的帮助!
Button[] levelBtns = new Button[6];
for (int i = 0; i < levelBtns.length; i++) {
levelBtns[i] = new Button(160, 40 + (i * 50), 100, 40);
}
答案 0 :(得分:1)
如果它不是Iterable,而是Collection或数组,那么你需要迭代,并且需要循环后的迭代次数,只需使用Collection.size()方法或 length 字段数组的大小,以获得它的大小,这也是迭代次数。
答案 1 :(得分:1)
这是foreach循环的最佳解决方案。否则你可以使用类似的东西:
for (int i = 0; i<levelBtns.lenght; i++) {
levelBtns[i] = new Button(160, (i + 40) * 50, 100, 40);
}
答案 2 :(得分:0)
你的解决方案没问题,而且一般。但可能的方法是
您可以通过获取计数器值来获取,如果它是一个列表,那么levelBtns.size()
如果是一个数组,那么array.length