Methode um Objekte einer Liste hinzuzufügen

Diskutiere Methode um Objekte einer Liste hinzuzufügen im Java Basics - Anfänger-Themen Bereich.
N

nikva

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.

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) {

    }
}
 

Anhänge

L

LimDul

Deine Lok wird doch den ersten Wagen (Den Anfang der Liste) kennen. Von da kannst du durchlaufen bist zum Ende des Zuges kommt.
 
Thema: 

Methode um Objekte einer Liste hinzuzufügen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben