我应该使用迭代器还是简单循环?

Should I use iterators or simple loops?

我正在为双向链表执行 Java 实现。

我有一些这样的方法:

private DLNode<T> getNodeAtPosition(int position) throws DLListException {
  verifySize(this.listSize(), position);
  DLNode<T> result = this.first;
  for (int counter = 0; counter < position; counter++) { // <=======
    result = result.next;
  }
  return result;
}

可以使用 for/while 循环或迭代器来完成。哪一个优化了这些方法?如果你想做一个非常常用的 ADT,那是一件重要的事情。

我指的不是 for-each 循环,我指的是必须在结束前停止的循环,或者通常具有多个终止条件的任何循环。

Should I use iterators instead of for/while loops? (In this situation where the loop has more than one termination condition.)

(我上面的后记)

这主要是见仁见智,但如果简单的 for 循环可以满足您的需求,那么避免创建 Iterator 对象和调用其方法的开销似乎是合理的 objective 坚持使用简单的 for 循环的原因。 JVM 的 JIT 优化较少,特别是如果您正在编写将在很多地方使用的实用程序 class(例如,双向链表)。