Skip to content
Advertisement

Convert GraphTraversal<Vertex, Map> into Java8 stream

I have a result of a query to graphDB which returns GraphTraversal<Vertex, Map<Object, List>> values. By using the default methods values.iterate().toStream() it should return a Stream of Stream<Map<Object, List>> which I can handle as a Java8 stream, but for some reason, it does not work, repeat, by using the default methods from gemlin API to get the stream.

Note: By using a while I can iterate over it, that’s fine, but I need to do some more complex operations that will be simplified by using Java8 Streams, but, as I said, is not working, even using tinkerpop default methods. Any idea?

There are no errors, but the stream is empty for some reason.

Advertisement

Answer

When you call iterate() it returns a GraphTraversal and you can then call toStream() on that, but it will always be empty. You should omit the iterate() if you intend to return values to your Stream. In short, simply do values().toStream().

Advertisement