Hallo,
ich hätte eine Frage und zwar verstehe ich ein teil des vorgegebenen codes nicht, um die Aufgabe zu bearbeiten.
GANZE AUFGABEN ÜBERSICHT
In dieser Aufgabe werden Sie das bekannte Logistiksystem weiter ausbauen und einen Zustellungsalgorithmus implementieren. Entsprechend der Jahreszeit stellt ein Weihnachtsmann die Lieferungen zu und Straßen müssen nicht berücksichtigt werden.
bevor ich diese Aufgabe angegangen bin habe ich die Methode removeDelivery() erstellt.
EIGENTLICHE AUFGABENSTELLUNG
Die Methode registerDeliveries() fügt neue Lieferungen am Ende des Arrays deliveries an und vergrößert dieses Array immer weiter. Andererseits entfernt die Methode removeDelivery() Lieferungen aus dem Array und setzt die entsprechenden Werte auf null. Im späteren Programmablauf würde dies dazu führen, dass am Anfang des Arrays null Werte stehen und erst gegen Ende des Arrays Referenzen auf Lieferungen vorhanden sind. Verhindern Sie dies, indem Sie die Methode registerDeliveries() so anpassen, dass das Array auch schrumpft, wenn es null-Werte am Anfang des Arrays gibt. Null-Werte, die in der Mitte des Arrays auftreten, dürfen erhalten bleiben.
Meine Fragen:
Warum wird überhaupt überprüft ob( i < oldPallets.length) ist i ist doch immer größer denn mann muss mindestens 1 objekt dazu addieren.
newPallets = pallets[i - oldPallets.length] dann stecken doch in den neuenPalletarray nur die neuen palletwerte
in der aufgabenstellung steht doch dass, das array immer vergrößert wird ich sehe hiervon nix und wo greift den die Methode removeDelivery() ein
ich hätte eine Frage und zwar verstehe ich ein teil des vorgegebenen codes nicht, um die Aufgabe zu bearbeiten.
GANZE AUFGABEN ÜBERSICHT
In dieser Aufgabe werden Sie das bekannte Logistiksystem weiter ausbauen und einen Zustellungsalgorithmus implementieren. Entsprechend der Jahreszeit stellt ein Weihnachtsmann die Lieferungen zu und Straßen müssen nicht berücksichtigt werden.
bevor ich diese Aufgabe angegangen bin habe ich die Methode removeDelivery() erstellt.
EIGENTLICHE AUFGABENSTELLUNG
Die Methode registerDeliveries() fügt neue Lieferungen am Ende des Arrays deliveries an und vergrößert dieses Array immer weiter. Andererseits entfernt die Methode removeDelivery() Lieferungen aus dem Array und setzt die entsprechenden Werte auf null. Im späteren Programmablauf würde dies dazu führen, dass am Anfang des Arrays null Werte stehen und erst gegen Ende des Arrays Referenzen auf Lieferungen vorhanden sind. Verhindern Sie dies, indem Sie die Methode registerDeliveries() so anpassen, dass das Array auch schrumpft, wenn es null-Werte am Anfang des Arrays gibt. Null-Werte, die in der Mitte des Arrays auftreten, dürfen erhalten bleiben.
Code:
public void registerPallets(Pallet... pallets) {
if (pallets == null || pallets.length == 0) {
return;
}
Pallet[] oldPallets = this.pallets; //
Pallet[] newPallets = new Pallet[oldPallets.length + pallets.length];
for (int i = 0; i < newPallets.length; i++) {
if (i < oldPallets.length) {
newPallets[i] = oldPallets[i];
} else {
newPallets[i] = pallets[i - oldPallets.length];
}
}
this.pallets = newPallets;
//Remove leading null values in this.pallets here
}
Meine Fragen:
Warum wird überhaupt überprüft ob( i < oldPallets.length) ist i ist doch immer größer denn mann muss mindestens 1 objekt dazu addieren.
newPallets = pallets[i - oldPallets.length] dann stecken doch in den neuenPalletarray nur die neuen palletwerte
in der aufgabenstellung steht doch dass, das array immer vergrößert wird ich sehe hiervon nix und wo greift den die Methode removeDelivery() ein