Guten Abend,
meine Frage bezieht sich auf ein ähnliches Problem von Mika34. Jedoch hat mir seine Frage bei meinem Problem nicht ganz weitergeholfen.
Ich bin dabei ein Gleisnetz zu implementieren. Dabei gibt es zwei Typen von Gleisen:
- NormalTrack(int id, Point startPoint, Point endPoint, int length)
- TrackSwitch(int id, Point startPoint, Point endPoint, Point secondEndPoint, int length, boolean switchEnabled)
Eine Weiche (TrackSwitch) kann eine Strecke in zwei Teilstrecken aufteilen. Jedes Gleis (sowohl Weichen als auch normale Gleise) bekommen eine eindeutige ID, daher die
Jedoch habe ich keine gescheite Idee, wie ich die addTrack() und addSwitch() Methode implementieren soll. Eventuell macht es auch gar kein Sinn mit den beiden Maps oder generell mit meiner Implementierung...?
Könnte mir jemand bei den beiden Methoden behilflich sein? Ich wäre über jegliche Hilfe sehr dankbar!
Viele Grüße
meine Frage bezieht sich auf ein ähnliches Problem von Mika34. Jedoch hat mir seine Frage bei meinem Problem nicht ganz weitergeholfen.
Ich bin dabei ein Gleisnetz zu implementieren. Dabei gibt es zwei Typen von Gleisen:
- NormalTrack(int id, Point startPoint, Point endPoint, int length)
- TrackSwitch(int id, Point startPoint, Point endPoint, Point secondEndPoint, int length, boolean switchEnabled)
Eine Weiche (TrackSwitch) kann eine Strecke in zwei Teilstrecken aufteilen. Jedes Gleis (sowohl Weichen als auch normale Gleise) bekommen eine eindeutige ID, daher die
Map<Integer, Track> tracks
.Jedoch habe ich keine gescheite Idee, wie ich die addTrack() und addSwitch() Methode implementieren soll. Eventuell macht es auch gar kein Sinn mit den beiden Maps oder generell mit meiner Implementierung...?
Java:
public class RailNetwork {
private Map<Point, List<Point>> edges = new HashMap<>();
private Map<Integer, Track> tracks;
// Add edge (two points)
public void addEdge(Point firstNode, Point secondNode) {
edges.computeIfAbsent(firstNode, x -> new ArrayList<>()).add(secondNode);
edges.computeIfAbsent(secondNode, x -> new ArrayList<>()).add(firstNode);
}
public void addTrack(NormalTrack track) {
// TODO
}
public void addSwitch(TrackSwitch trackSwitch) {
// TODO
}
...
}
Könnte mir jemand bei den beiden Methoden behilflich sein? Ich wäre über jegliche Hilfe sehr dankbar!
Viele Grüße