Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 时间复杂度regerding迭代器和for each循环_Java - Fatal编程技术网

Java 时间复杂度regerding迭代器和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”,它由一个子类“Graph.Vertex”扩展。使用迭代器或for-each循环遍历对象时,最具时间效率的是什么:

Graph.iterator();
while (Graph.iterator().hasNext()) {
    // Do something
}
vs


这完全取决于您如何实现这两者之一

图的通常实现使用数组来存储顶点,迭代只需要O(V)时间,其中V是图中的顶点数


如果您的实现与此不同,那么您必须提供更多信息,以便获得关于效率的准确答案。

这两种方法都没有,for-each循环都会在封面下使用迭代器。正如@azurefrog所提到的,这两种方法的运行时间应该相似。也就是说,直接使用迭代器可能允许您在迭代过程中进行删除,而for each则不会。
for (Graph.Vertex v : Graph {
    // Do something
}