Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe folgende Klasse mit folgenden Methoden gegeben:
Java:
public class Flugverbindung {
public String gibStartFlughafen() {...}
public String gibZielFlughafen() {...}
public String gibFlughäfen() {...}
public String gibFluglinien() {...}
Jetzt muss ich eine Methode gibAnbindungen() in der Klasse Flugnetz realisieren.
Der Ergebnistyp der Methode soll selbst bestimmt werden. Die Methode soll die Flughäfen ermitteln, von denen ein Abflug möglich ist und jedem seinem Flughafen die direkt erreichbaren Zielflughäfen zuordnen.
Es soll zudem mit einer LinkedList gearbeitet werden. Die vorgegebene Klasse sieht wie folgt aus:
Java:
public class Flugnetz {
private final List<Flugverbindung> verbindungen;
public Flugnetz() {
verbindungen = new LinkedList<>();
}
public ____________?________________ gibAnbindungen() {
???
}
Noch weitere Infos zur Klasse:
Ein Objekt der Klasse repräsentiert ein Netz aus Flugzeugverbindung aller Fluglinien. Ein Objekt der Klasse Flugverbindung repräsentiert eine Direktverbindung einer Fluglinie zwischen Start- und Zielflughafen.
Wie kann ich so eine Methode realisieren. Vielleicht muss man da noch mit einer HashMap arbeiten?
Kennt jemand dazu eine mögliche Lösung oder Ansätze. Alles würde mir helfen. Das würde mich freuen.
@flauschig
Was hat ein Flug? Startziel und Endziel. Beide tragen die Namen der jeweiligen Städte.
Was hat also eine Flugverbindung? Richtig, Startziel und Endziel.
Letztendlich wird von dir verlangt, dass du durch die Liste gehst und jeweils nach passenden Treffer suchst.
Wie in einem Einkaufsmarkt: du gehst die Regale entlang und legst in den Korb alle Waren, die entsprechend gekennzeichnet sind. An der Kasse hast du dann die Liste, was du alles im Korb hast.
So auch hier: vergleiche jeweils das Geforderte und lege es in den Korb. Lasse dir anschließend die Rechnung geben.
Danke erstmal für die Antwort.
Ich hab jetzt probiert die Methode im Ansatz zu schreiben:
Java:
public static List<Verbindung> getVerbindungen(String start, List<Verbindung> list) {
LinkedList ziele = new LinkedList<>();
for(int i = 0; i < verbindungen.size(); i++) {
if(start.contains(startFlughafen())) {
ziele.add(zielFlughafen());
}
}
return ziele;
}
Ich gehe erstmal alle Verbindungen durch und schaue, ob es für die aktuelle Verbindung den angeforderten Startflughafen gibt. Falls ja, füge ich in einer neuen LinkedList den Zielflughafen dran. Ist das ein guter Ansatz oder Mist? Wie würdest du das machen?
Ist halt ein bisschen knackig zu verstehen, wenn man da noch Anfänger ist.
Da man hier nur durch die Liste durchgeht, entschied ich mich für die erweiterte For-Each -Schleife
Java:
public static List<Verbindung> getVerbindungen(String start, List<Verbindung> list)
{
List<Verbindung> v = new LinkedList<>();
for (Verbindung verbindung : list) // Soll heißen für jedes Element der Liste
{
if (verbindung.getStartFlughafen().equalsIgnoreCase(start))
{
v.add(verbindung);
}
}
return v;
}