Java,如何获得当前索引/键“for each”循环
在Java中,如何获取Java中元素的当前索引?
for (Element song: question){ song.currentIndex(); //<<want the current index. }
在PHP中,你可以这样做:
foreach ($arr as $index => $value) { echo "Key: $index; Value: $value"; }
你不能,你需要分开保存索引:
int index = 0; for(Element song : question) { System.out.println("Current index is: " + (index++)); }
或使用正常的循环:
for(int i = 0; i < question.length; i++) { System.out.println("Current index is: " + i); }
原因是你可以使用浓缩的语法循环任何Iterable ,并不能保证值实际上有一个“索引”
for (Song s: songList){ System.out.println(s + "," + songList.indexOf(s); }
它可能在链表中。
您必须在歌曲类中创buildtoString()。 如果你不这样做,它会打印出歌曲的参考。
现在可能对你无关紧要。 ^ _ ^
在Java中,你不能像foreach一样隐藏迭代器。 您必须执行正常的For循环才能获得当前的迭代。
跟踪你的索引:这是如何在Java中完成的:
int index = 0; for (Element song: question){ // Do whatever index++; }
在Java中不可能。
这是Scala的方式:
val m = List(5, 4, 2, 89) for((el, i) <- m.zipWithIndex) println(el +" "+ i)
正如其他人指出的,“不可能直接”。 我猜你想要Song的某种索引键? 只需在元素中创build另一个字段(一个成员variables)。 将歌曲添加到集合时增加它。
来自我正在使用的当前代码的示例:
int index=-1; for (Policy rule : rules) { index++; // do stuff here }
让您从零开始干净地开始,并在您处理时增加。