日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了如何在Java中使用gremlin遍歷圖形時收集屬性值?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我的圖中的每個頂點至少有一個名稱屬性。我有一個名稱值的標簽L集合S?,F在,我想從集合S中具有名稱的頂點中收集可通過帶有邊標簽EL的特定傳出邊(遞歸地)到達的所有頂點的名稱屬性值。

我當前針對名為s1的單個開始節點的解決方案如下所示:

            g.traversal().V().hasLabel(L)
            .has("name", S1)
            .repeat(__.optional(__.out(EL)))
            .until(__.out(EL).count().is(0))
            .path()
            .forEachRemaining(path -> {
             path.forEach(e -> System.out.println(((Vertex)e).property("name").value()));});

println只是為了看到這會產生預期的結果,通常我會將姓名收集在一組中。

是否有更好的方法來收集可通過標簽為EL的傳出邊到達的所有頂點的名稱屬性值?

從多個頂點(其中只知道集合S中的名稱)開始的最佳方法是什么?

目前,該結構是一個樹,但如果可能存在循環,上面的代碼是否可以防止無盡的循環?如果沒有,如何做到這一點?

推薦答案

您的方法是一個良好的開端。

要從一組多個頂點開始,請使用P.within()謂詞。TinkerPop提供了幾個other predicates。

使用simplePath()防止循環重復。

使用store()跟蹤遍歷圖形的項目。by("name")調制器將存儲”name”屬性,而不是頂點。

要得到結果,請使用cap()輸出它在遍歷過程中存儲的項。此時的結果是可能包含重復項的Set。使用unfold()Set轉換為我們可以dedup()然后使用toSet()完成的迭代器。

graph.traversal().V().hasLabel(L).has("name", P.within(S)).
  repeat( __.out(EL).simplePath().store("x").by("name") ).
  until( __.outE(EL).count().is(0) ).
  cap("x").unfold().dedup().toSet()

這篇關于如何在Java中使用gremlin遍歷圖形時收集屬性值?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標簽:Gremlin Java 圖形 如何在 屬性 收集 遍歷
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定