Java 我如何找到我';您是否迭代了foreach循环?
如果我试图找到在java中迭代foreach循环的次数,有没有更好的方法Java 我如何找到我';您是否迭代了foreach循环?,java,loops,foreach,Java,Loops,Foreach,如果我试图找到在java中迭代foreach循环的次数,有没有更好的方法 int i = 0; for (Button button : levelBtns) { button = new Button(160, 40 + (i * 50), 100, 40); i++; } 我知道我可以使用一个普通的for循环和一个迭代器,但我只是想知道是否有一种更优雅的方法可以使用foreach来实现这一点。提前感谢:) 编辑:正如Jon Skeet指出的,上面的代码将新按钮实例分配给迭代
int i = 0;
for (Button button : levelBtns) {
button = new Button(160, 40 + (i * 50), 100, 40);
i++;
}
我知道我可以使用一个普通的for循环和一个迭代器,但我只是想知道是否有一种更优雅的方法可以使用foreach来实现这一点。提前感谢:)
编辑:正如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);
}
Button[]levelBtns=新按钮[6];
对于(int i=0;i
您的解决方案还可以,而且是通用的。但一种可能的方法是
如果它是一个列表,则可以通过获取数组的
levelBtns.size()
,然后获取数组的array.length
来获取计数器值。如果它不是一个Iterable,而是一个集合或数组,则需要循环后的迭代次数,只需使用Collection.size()方法或数组的长度字段来获取数组的大小,这也是迭代次数。这是foreach循环的最佳解决方案。否则,您可以使用以下内容:
for (int i = 0; i<levelBtns.lenght; i++) {
levelBtns[i] = new Button(160, (i + 40) * 50, 100, 40);
}
用于(int i=0;i您需要循环中的信息还是循环后的信息?我相信您已经发布了最佳解决方案。但是,如果您关心当前正在进行的迭代,为什么不切换到传统的for循环。该解决方案完全可以。我假设levelBtns
是一个数组或s的集合因此,迭代次数将是lvlButtons.length
或lvlButtons.size()
?您的代码目前毫无意义,因为您正在为迭代变量指定一个新值……这没有任何用处。OP已经提到了,我知道我可以使用普通for循环和迭代器,但我相信这是一个干净的解决方案。