我正在使用 Gremlin 遍历GraphTraversal
对象并检索顶点。
这是我正在使用的:
def getVertexSet(vIter: GraphTraversal[Vertex, Vertex]): Set[Vertex] = {
val s = mutable.HashSet.empty[Vertex]
vIter.forEachRemaining(v => s.add(v))
s.toSet
}
我希望能够做到这一点,而无需从可变集合转换为不可变集合。我不知道迭代器是否可能。Scala 执行此操作的方法可能是使用尾递归,但我不确定这样做是否有任何性能优势,并且在这一点上,最后一次转换为不可变可能无论如何都更具可读性。
此外,如果有更好的方法来收集遍历中的所有顶点,我也愿意接受这种优化。