如何找到我在foreach循环中迭代的次数?

时间:2014-01-05 17:36:01

标签: java loops foreach

如果我试图找到我在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);
}

3 个答案:

答案 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