Java 时间复杂度regerding迭代器和for each循环
我目前正试图找出什么是最有效的,为每个循环实现一个迭代器或一个循环 将要遍历的对象是一个类“Graph”,它由一个子类“Graph.Vertex”扩展。使用迭代器或for-each循环遍历对象时,最具时间效率的是什么:Java 时间复杂度regerding迭代器和for each循环,java,Java,我目前正试图找出什么是最有效的,为每个循环实现一个迭代器或一个循环 将要遍历的对象是一个类“Graph”,它由一个子类“Graph.Vertex”扩展。使用迭代器或for-each循环遍历对象时,最具时间效率的是什么: Graph.iterator(); while (Graph.iterator().hasNext()) { // Do something } vs 这完全取决于您如何实现这两者之一 图的通常实现使用数组来存储顶点,迭代只需要O(V)时间,其中V是图中的顶点数 如果您
Graph.iterator();
while (Graph.iterator().hasNext()) {
// Do something
}
vs
这完全取决于您如何实现这两者之一 图的通常实现使用数组来存储顶点,迭代只需要O(V)时间,其中V是图中的顶点数
如果您的实现与此不同,那么您必须提供更多信息,以便获得关于效率的准确答案。这两种方法都没有,for-each循环都会在封面下使用迭代器。正如@azurefrog所提到的,这两种方法的运行时间应该相似。也就是说,直接使用迭代器可能允许您在迭代过程中进行删除,而for each则不会。
for (Graph.Vertex v : Graph {
// Do something
}