好的Java图形算法库?

有没有人对Graph算法的任何Java库有很好的经验。 我试过JGraph,发现它没问题,而且谷歌里有很多不同的东西。 有没有人实际使用生产代码或推荐?

为了澄清,我没有寻找一个产生图形/图表的库,我正在寻找一个可以帮助图形算法的库,例如最小生成树,克鲁斯卡尔算法节点,边等等。理想情况下,一个算法/数据很好结构在一个不错的Java OO API中。


如果你使用的是JGraph,你应该尝试一下为算法设计的JGraphT。 它的一个特点是使用JGraph库进行可视化。 它还在开发中,但非常稳定。 我前段时间分析了JGraphT算法的复杂性。 其中一些并不是最快的,但如果你要自己实现它们并需要显示你的图表,那么它可能是最好的选择。 我非常喜欢使用它的API,当时我很快就要编写一个在图形上工作并在稍后显示的应用程序。


概要:

  • JGraphT如果你对数据结构和算法更感兴趣。
  • JGraph如果你的主要焦点是可视化。
  • Jung,yWorks和BFG是人们尝试使用的其他东西。
  • Prefuse是一个不可能的事情,因为人们必须重写大部分内容。
  • 谷歌Guava,如果你只需要好的数据结构。
  • Apache Commons图。 目前处于休眠状态,但为许多算法提供了实现。 请参阅https://issues.apache.org/jira/browse/SANDBOX-458获取已实现算法的列表,并与Jung,GraphT,Prefuse,jBPT进行比较

  • 查看JGraphT是一个非常简单,功能强大的Java图形库,它可以很好地完成,为了消除任何混乱,它与JGraph不同。 一些示例代码:

    UndirectedGraph<String, DefaultEdge> g =
            new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
    
        String v1 = "v1";
        String v2 = "v2";
        String v3 = "v3";
        String v4 = "v4";
    
        // add the vertices
        g.addVertex(v1);
        g.addVertex(v2);
        g.addVertex(v3);
        g.addVertex(v4);
    
        // add edges to create a circuit
        g.addEdge(v1, v2);
        g.addEdge(v2, v3);
        g.addEdge(v3, v4);
        g.addEdge(v4, v1);
    
    链接地址: http://www.djcxy.com/p/51047.html

    上一篇: Good Java graph algorithm library?

    下一篇: Java 2D Game engine for tile