简体   繁体   English

转换 GraphTraversal <vertex, map<object, list> &gt; 进入Java8 stream</vertex,>

[英]Convert GraphTraversal<Vertex, Map<Object, List>> into Java8 stream

I have a result of a query to graphDB which returns GraphTraversal<Vertex, Map<Object, List>> values .我有一个对graphDB的查询结果,它返回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 Java8 stream, but for some reason, it does not work, repeat, by using the default methods from gemlin API to get the stream.通过使用默认方法values.iterate().toStream()它应该返回Stream<Map<Object, List>>的 Stream,我可以将其处理为 Java8 stream,但由于某种原因,它不起作用,重复一遍使用 gemlin API 中的默认方法来获取 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.注意:通过使用一段while我可以对其进行迭代,这很好,但我需要做一些更复杂的操作,这些操作将通过使用Java8 Streams来简化,但是,正如我所说,即使使用tinkerpop默认方法也不起作用。 Any idea?任何想法?

There are no errors, but the stream is empty for some reason.没有错误,但 stream 出于某种原因是空的。

When you call iterate() it returns a GraphTraversal and you can then call toStream() on that, but it will always be empty.当您调用iterate()时,它会返回一个GraphTraversal ,然后您可以在其上调用toStream() ,但它始终为空。 You should omit the iterate() if you intend to return values to your Stream .如果您打算将值返回到Stream ,则应该省略iterate() In short, simply do values().toStream() .简而言之,只需执行values().toStream()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM