Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Graph g = new Graph();
- Node n1 = new Node("#1");
- Node n2 = new Node("#2");
- Edge e1 = new Edge("e#1", "#1", "#2");
- // Each node is added like a reference
- g.addNode(n1);
- g.addNode(n2);
- g.addEdge(e1);
- // This will break the internal integrity of the graph
- n1.setName("#3");
- g.getNode("#2").setName("#4");
- public final class Node {
- private final String name;
- public Node(String name) {
- this.name = name;
- }
- public String getName() { return name; }
- // note: no setter for name
- }
- public class Graph {
- Set<Node> nodes = new HashSet<Node>();
- public void addNode(Node n) {
- // note: this assumes you've properly overridden
- // equals and hashCode in Node to make Nodes with the
- // same name .equal() and hash to the same value.
- if(nodes.contains(n)) {
- throw new IllegalArgumentException("Already in graph: " + node);
- }
- nodes.add(n);
- }
- }
Add Comment
Please, Sign In to add comment