java - 倒带迭代器

标签 java iterator

我正在使用 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/

相关文章:

java - Selenium UnreachableBrowserException - SoapUI Groovy TestStep 中的 "Could not start a new session"

Android 中的 java.lang.ExceptionInInitializerError

java - 使这个带有内存的递归斐波那契更快?

java - 在java中获取Linkedhashmap中的Next key

javascript - 如何将迭代器 (FormData) 转换为对象

c++ - 结束迭代器失效规则

C++11:在不知道其容器的情况下存储迭代器

java - Hibernate 条件与 Distinct 和 order by

java - JOptionPane 的属性更改值是多少以及何时更改?

python - 嵌套(二维)字典的类迭代器?