List of Java APIs for graph/network data structures

前端 未结 4 748
迷失自我
迷失自我 2020-12-30 11:41

What are some good Java APIs for working with graphs (edges/nodes) as data structures?

Please add references to similar SO questions in comments to this wiki. Ple

相关标签:
4条回答
  • 2020-12-30 12:28

    I searched a lot for Java Graph Library in the web for my MS thesis. I suggest you the following frameworks:

    1. GraphStream: it has very simple API and it's plenty of algorithms. It offers many graph structures (directed, undirected, multigraph, ... ) and many visualisation tools.
    2. JUNG: this framework has been around for a while, so it has robust and well-tested features. Last release was in 2010, so the syntax is quite a bit old.

    Both the frameworks have many algorithms and a visualisation tool.

    If you are concerned about memory and performance, and you just need the graph data structure (no algorithms, no visualisation), I would suggest AuroraGraphManager, which is the graph data structure I implemented and part of my thesis. The frameworks I suggested above weren't good for me because I had to deal with quite big graphs (up to 300 million edges).

    Hope it helps!

    0 讨论(0)
  • 2020-12-30 12:29

    JUNG — the Java Universal Network/Graph Framework--is a software library that provides a common and extendible language for the modeling, analysis, and visualization of data that can be represented as a graph or network.

    0 讨论(0)
  • 2020-12-30 12:42

    JGraphT - JGraphT is a free Java graph library that provides mathematical graph-theory objects and algorithms. JGraphT supports various types of graphs including:

    • directed and undirected graphs.
    • graphs with weighted / unweighted / labeled or any user-defined edges.
    • various edge multiplicity options, including: simple-graphs, multigraphs, pseudographs.
    • unmodifiable graphs - allow modules to provide "read-only" access to internal graphs.
    • listenable graphs - allow external listeners to track modification events.
    • subgraphs graphs that are auto-updating subgraph views on other graphs.
    • all compositions of above graphs

    (Requires Java 1.6)

    0 讨论(0)
  • 2020-12-30 12:42

    JDSL - JDSL is the Data Structures Library in Java. It is a collection of Java interfaces and classes that implement fundamental data structures and algorithms, such as:

    • sequences, trees, priority queues, search trees, hash tables
    • sorting and searching algorithms
    • graphs
    • graph traversals, shortest path, minimum spanning tree

    (JDSL does not appear to support generics)

    0 讨论(0)
提交回复
热议问题