在Java中,如何获取Java中元素的当前索引?
for (Element song: question){
song.currentIndex(); //<<want the current index.
}
在PHP中你可以这样做:
foreach ($arr as $index => $value) {
echo "Key: $index; Value: $value";
}
答案 0 :(得分:295)
你不能,你需要单独保留索引:
int index = 0;
for(Element song : question) {
System.out.println("Current index is: " + (index++));
}
或使用普通for循环:
for(int i = 0; i < question.length; i++) {
System.out.println("Current index is: " + i);
}
原因是您可以使用精简语法循环遍历任何Iterable,并且不能保证这些值实际上具有“索引”
答案 1 :(得分:20)
for (Song s: songList){
System.out.println(s + "," + songList.indexOf(s);
}
可以在链表中使用。
你必须在歌曲课中制作toString()。 如果你不这样做,它将打印出歌曲的参考。
现在可能和你无关。 ^ _ ^
答案 2 :(得分:12)
在Java中,你不能,因为foreach意味着隐藏迭代器。您必须执行正常的For循环才能获得当前迭代。
答案 3 :(得分:11)
跟踪你的索引:这是用Java完成的:
int index = 0;
for (Element song: question){
// Do whatever
index++;
}
答案 4 :(得分:6)
Java中不可能。
这是Scala方式:
val m = List(5, 4, 2, 89)
for((el, i) <- m.zipWithIndex)
println(el +" "+ i)
答案 5 :(得分:2)
正如其他人指出的那样,'不可能直接'。 我猜你想要一些宋的索引键? 只需在Element中创建另一个字段(成员变量)。将Song添加到集合时增加它。
答案 6 :(得分:-4)
我正在使用的当前代码示例:
int index=-1;
for (Policy rule : rules)
{
index++;
// do stuff here
}
让您干净地从索引为零开始,并在处理时递增。