import java.util.Objects; /** Klasse fuer eine Kante eines Graphen */ public class Edge { /** der Startknoten der Kante */ protected Vertex start; /** der Endknoten der Kante */ protected Vertex end; /** Eine Kante aus ihrem Start- und Endknoten erzeugen. * @param start Startknoten * @param end t Endknoten */ public Edge(Vertex start, Vertex end) { this.start = start; this.end = end; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || ! (o instanceof Edge)) return false; Edge edge = (Edge) o; // Zwei Kanten sind gleich, wenn sie die gleichen Vertices enthalten, // unabhängig von der Reihenfolge... naja bei gerichtet nicht egal! return (Objects.equals(start, edge.start) && Objects.equals(end, edge.end)); // || (Objects.equals(start, edge.end) && Objects.equals(end, edge.start)); } //medgahashcodea @Override public int hashCode() { return Objects.hash(start, end); } //medgahashcodee }