Я использую 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 используется хвостовая рекурсия, но я не уверен, что в этом есть какое-то преимущество с точки зрения производительности, и в этот момент единственное преобразование в неизменяемое в конце, вероятно, в любом случае будет более читабельным.
Кроме того, если есть лучший способ собрать все вершины из обхода, я тоже открыт для этой оптимизации.