重用EdgeIterator

时间:2015-06-19 14:10:55

标签: graphhopper

如果我理解的话,EdgeIterator只能使用一次。如果这是正确的,为什么我们不能简单地重置它以避免每次我们需要在相同的节点边上循环时创建一个新的EdgeIterator实例?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用EdgeExplorer,则会重复使用EdgeIterator:

// store somewhere
explorer = graph.createEdgeExplorer();

// use somewhere
EdgeIterator iter = explorer.setBaseNode(x);
while(iter) {..}

对此仍然非常小心,因为你需要一个edgeExplorer用于每个线程和每个循环,例如使用一个资源管理器进行双重for循环将失败:)