Path refactoring net.berack is now the corect pakage, update java to 23

This commit is contained in:
2025-03-12 09:25:57 +01:00
parent 07305b82f8
commit aba1f55bc0
48 changed files with 227 additions and 228 deletions

View File

@@ -0,0 +1,113 @@
package net.berack.upo.graph;
import java.util.Collection;
import java.util.List;
/**
* Class used for retrieving the edges of the graph.
*
* @param <V> the vertices
* @author Berack96
*/
public class Edge<V> implements Comparable<Edge<V>> {
/**
* The source vertex
*/
private final V source;
/**
* The destination vertex
*/
private final V destination;
/**
* The weight of this edge
*/
private final int weight;
/**
* Create a final version of this object with weight 1
*
* @param source the source of the edge
* @param destination the destination of the edge
*/
public Edge(V source, V destination) {
this(source, destination, 1);
}
/**
* Create a final version of this object
*
* @param source the source of the edge
* @param destination the destination of the edge
* @param weight the weight of the edge
*/
public Edge(V source, V destination, int weight) {
this.source = source;
this.destination = destination;
this.weight = weight;
}
/**
*
*/
public Collection<V> getVertices() {
if (source == null && destination == null)
return List.of();
if (source == null)
return List.of(destination);
if (destination == null)
return List.of(source);
return List.of(source, destination);
}
/**
* The vertex where the edge goes
*
* @return the vertex
*/
public V getDestination() {
return destination;
}
/**
* The vertex where the edge starts from
*
* @return the vertex
*/
public V getSource() {
return source;
}
/**
* The weight of the edge
*
* @return the weight
*/
public int getWeight() {
return weight;
}
@Override
public String toString() {
return "[" + source + " -> " + destination + ", " + weight + "]";
}
@Override
public int hashCode() {
return toString().hashCode();
}
@Override
public boolean equals(Object obj) {
try {
return obj.getClass().equals(getClass()) && obj.toString().equals(toString());
} catch (Exception e) {
return false;
}
}
@Override
public int compareTo(Edge<V> edge) {
return weight - edge.weight;
}
}