我正在使用 Libgdx 制作游戏。在我的主循环中,我使用迭代器来迭代我的世界的所有元素。我的 World
类如下所示:
public class World implements Iterable<GameElement>
{
...
public Iterator<GameElement> iterator()
{
return listGameElements.iterator();
}
}
但是当我分析我的应用程序时,有很多分配来自 listGameElements.iterator()
行(该行在每个游戏循环中都会被调用,所以一秒钟内会调用很多次) )。
我想将迭代器作为类的私有(private)属性,但迭代器只能使用一次。 有没有办法倒回迭代器,以避免进行更多分配?
最佳答案
您可以根据 ListIterator 进行操作它允许您朝两个方向前进。
使用示例:
aList.add("1");
aList.add("2");
aList.add("3");
aList.add("4");
aList.add("5");
ListIterator listIterator = aList.listIterator();
System.out.println("moving forward");
while(listIterator.hasNext()) {
System.out.println(listIterator.next());
}
System.out.println("moving backward");
while(listIterator.hasPrevious()) {
System.out.println(listIterator.previous());
}
关于java - 倒带迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23844502/