From charlesreid1

(Created page with "{{Main|Guava}} Guava implements high performance data containers for Java.")
 
No edit summary
Line 1: Line 1:
{{Main|Guava}}
{{Main|Guava}}


Guava implements high performance data containers for Java.
Guava implements high performance data containers for Java. There are a number of things to be aware of when dealing with Guava Graphs. Most of these notes are taken from the Guava wiki on Github: https://github.com/google/guava/wiki/GraphsExplained#building-graph-instances
 
First, Guava Graphs should be thought of as extensions of the Java Collections types; they are not intended to scale to massive graphs, nor do they provide any specialized functionality (e.g., visualization). That is separate functionality to be implemented in separate libraries.
 
Next, there are two major classes of graphs in Guava: mutable and immutable.
 
There are three types of graphs available: <code>Graph</code>, <code>ValueGraph</code>, and <code>Network</code>. These are summarized as follows:
* Graph is your classic graph, it just deals with node-to-node relationships with "anonymous" edges defined only by endpoints.
* ValueGraph is a graph where edges store a value (the value does not need to be unique); the value associated with the edge is (maybe??) of arbitrary type. The edges are stored as a map from a pair of vertices to a value.
* Network is a type of graph that treats all edges as formal first-clsas types, just like nodes; this enables parallel edges with arbitrary objects.

Revision as of 00:53, 22 August 2017

Guava implements high performance data containers for Java. There are a number of things to be aware of when dealing with Guava Graphs. Most of these notes are taken from the Guava wiki on Github: https://github.com/google/guava/wiki/GraphsExplained#building-graph-instances

First, Guava Graphs should be thought of as extensions of the Java Collections types; they are not intended to scale to massive graphs, nor do they provide any specialized functionality (e.g., visualization). That is separate functionality to be implemented in separate libraries.

Next, there are two major classes of graphs in Guava: mutable and immutable.

There are three types of graphs available: Graph, ValueGraph, and Network. These are summarized as follows:

  • Graph is your classic graph, it just deals with node-to-node relationships with "anonymous" edges defined only by endpoints.
  • ValueGraph is a graph where edges store a value (the value does not need to be unique); the value associated with the edge is (maybe??) of arbitrary type. The edges are stored as a map from a pair of vertices to a value.
  • Network is a type of graph that treats all edges as formal first-clsas types, just like nodes; this enables parallel edges with arbitrary objects.