Hallo,
Ich habe Probleme bei einer Aufgabe zum Thema Listen.
Ich soll durch Kombination zweier methoden Waggons an einen Zug anhängen (Aufgabe 2 j) k) l) )
Wenn ich jetzt einen Waggon einhängen will, muss ich ja erstmal überprüfen welche Waggons bereits vorhanden sind und müsste dafür ja jeden Waggon kennen. In der Liste kennt aber jedes Objekt nur seinen Nachfolger. Man könnte jedes Objekt mit einer for Schleife durchlaufen aber dafür müsste man ja trotzdem wissen wo der Anfang der Liste ist und welche Objekte bereits enthalten sind
Wäre dankbar wenn mir jemand beim Ansatz helfen könnte.
Ich habe Probleme bei einer Aufgabe zum Thema Listen.
Ich soll durch Kombination zweier methoden Waggons an einen Zug anhängen (Aufgabe 2 j) k) l) )
Wenn ich jetzt einen Waggon einhängen will, muss ich ja erstmal überprüfen welche Waggons bereits vorhanden sind und müsste dafür ja jeden Waggon kennen. In der Liste kennt aber jedes Objekt nur seinen Nachfolger. Man könnte jedes Objekt mit einer for Schleife durchlaufen aber dafür müsste man ja trotzdem wissen wo der Anfang der Liste ist und welche Objekte bereits enthalten sind
Wäre dankbar wenn mir jemand beim Ansatz helfen könnte.
Java:
package edu.hm.cs.swe2.trains;
public class Wagon {
private int wagonNumber;
private boolean isPassengerWagon;
private boolean carriesDangerousGoods;
public Wagon nextWagon;
public Wagon(boolean isPassengerWagon, boolean carriesDangerousGoods) {
if (isPassengerWagon == true && carriesDangerousGoods == true) {
this.carriesDangerousGoods = false;
System.out.println("Personenwaggon darf kein Gefahrgut enthalten! Waggon nicht beladen!");
} else
this.isPassengerWagon = isPassengerWagon;
this.carriesDangerousGoods = carriesDangerousGoods;
this.setWagonNumber(0);
this.setNextWagon(null);
}
public boolean isPassengerWagon() {
return isPassengerWagon;
}
public boolean isCarriesDangerousGoods() {
return carriesDangerousGoods;
}
public void setWagonNumber(int wagonNumber) {
this.wagonNumber = wagonNumber;
}
public void setNextWagon(Wagon nextWagon) {
this.nextWagon = nextWagon;
}
public void printWagon(int level) {
if (level == 3) {
if (nextWagon == null)
System.out.println("**********");
} else if (level == 2) {
if (this.isPassengerWagon == false && this.carriesDangerousGoods == true) {
System.out.println("* f" + this.wagonNumber + " dg *");
} else if (this.isPassengerWagon == false && this.carriesDangerousGoods == false) {
System.out.println("* f" + this.wagonNumber + " *");
} else if (this.isPassengerWagon == true) {
System.out.println("* p" + this.wagonNumber + " *");
}
} else if (level == 1) {
System.out.println("**********->");
} else if (level == 0) {
System.out.println(" *** *** ");
}
}
public boolean trainCarriesDangerousGoods() {
if (this.carriesDangerousGoods == true) {
return true;
} else if (this.nextWagon == null) {
return false;
} else {
return nextWagon.trainCarriesDangerousGoods();
}
}
public boolean trainHasPassengerWagons() {
if (this.isPassengerWagon == true) {
return true;
} else if (this.nextWagon == null) {
return false;
} else {
return nextWagon.trainHasPassengerWagons();
}
}
public Wagon addWagon(Wagon newWagon) {
if (this.trainCarriesDangerousGoods() == true && newWagon.isPassengerWagon() == true) {
System.out.println("Personenwagen kann nicht eingefügt werden, da Zug bereits Gefahrgut enthält");
}
if (newWagon.carriesDangerousGoods == true && this.trainHasPassengerWagons() == true) {
System.out.println("Zug enthält Personenwaggons: Gefahrgutwaggon kann nicht eingefügt werden");
} else {
addWagon(this.wagonNumber, newWagon);
}
return newWagon;
}
private void addWagon(int wagonNumber, Wagon newWagon) {
}
}