GraphTraversal
オブジェクトを反復処理して頂点を取得するために Gremlin を使用しています。
これが私が取り組んでいるものです:
def getVertexSet(vIter: GraphTraversal[Vertex, Vertex]): Set[Vertex] = {
val s = mutable.HashSet.empty[Vertex]
vIter.forEachRemaining(v => s.add(v))
s.toSet
}
可変コレクションから不変コレクションに変換せずにこれを実行できるようにしたいと思います。イテレータでそれが可能かどうかはわかりません。これを行う Scala の方法は、おそらく末尾再帰を使用することですが、パフォーマンス上の利点があるかどうかはわかりません。その時点で、最後に不変への単一の変換を行うと、とにかく読みやすくなります。
また、トラバーサルからすべての頂点を収集するためのより良い方法があれば、その最適化も受け入れます。