Hinzufügen eines Objektes in ein Objekt-Array

temi

Top Contributor
Dein Array hat doch bereits die richtige Größe, von maximal 6 Wagen. Du musst weder ein Neues erstellen, noch etwas kopieren.

EDIT: Es geht nur darum den "neuen" Wagen an der richtigen Stelle ins Array zu schreiben und die Anzahl entsprechend zu ändern. Evtl. solltest du vorher prüfen, ob der ICE bereits komplett ist.
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Dann spiel das doch einmal durch:
Java:
for (int i = 0;i<anzahlWagen-1 ;i++ ) {
      newICE[i] = ICE[i];
    }

anzahlWagen soll z.B. 1 sein. Welche Elemente werden kopiert?
 

javamanki

Mitglied
Dann spiel das doch einmal durch:
Java:
for (int i = 0;i<anzahlWagen-1 ;i++ ) {
      newICE[i] = ICE[i];
    }

anzahlWagen soll z.B. 1 sein. Welche Elemente werden kopiert?
Gar keine, weil 0 nicht kleiner als 0 ist

Dein Array hat doch bereits die richtige Größe, von maximal 6 Wagen. Du musst weder ein Neues erstellen, noch etwas kopieren.
Also die Aufgabe bestand insgesamt darin:
Zuerst eine Klasse Wagen erstellen mit dem parametrisierten Konstruktor, der die Anzahl der firstClass Sitze und SecondClass Sitze erfasst. Dann soll man eine Klasse IceBahn erstellen. Die ICE Bahn besteht aus einer Liste von Wagen, die mit einem Array der Länge 6 realisiert werden soll. Die aktuelle Wagenazahl soll in anzahlWagen gespeichert werden, welche jedoch zuerst auf 0 gesetzt werden soll. Mit der Methode addWagen muss ich nun in der TestKlasse fähig sein, neue Wagen zur ICE Bahn hinzuzufügen, aber nur solange bis die Länge des Arrays die 6 nicht übersteigt.
 

temi

Top Contributor
Also die Aufgabe bestand insgesamt darin:
Zuerst eine Klasse Wagen erstellen mit dem parametrisierten Konstruktor, der die Anzahl der firstClass Sitze und SecondClass Sitze erfasst. Dann soll man eine Klasse IceBahn erstellen. Die ICE Bahn besteht aus einer Liste von Wagen, die mit einem Array der Länge 6 realisiert werden soll. Die aktuelle Wagenazahl soll in anzahlWagen gespeichert werden, welche jedoch zuerst auf 0 gesetzt werden soll. Mit der Methode addWagen muss ich nun in der TestKlasse fähig sein, neue Wagen zur ICE Bahn hinzuzufügen, aber nur solange bis die Länge des Arrays die 6 nicht übersteigt.
Ja.
Java:
public class IceBahn {
  private static int anzahlWagen = 0; // Anzahl gleich 0 Check!
  static Wagen[] ICE = new Wagen[6]; // Array Länge 6 Check!
 
  public static int getAnzahlWagen(){
    return anzahlWagen;
    }
 
 
    public static void addWagen(Wagen o) {
        Wagen[] newICE = new Wagen[anzahlWagen+1]; // Wozu? Länge stimmt doch schon
        for (int i = 0;i<anzahlWagen-1 ;i++ ) { // Wozu?
              newICE[i] = ICE[i];
        } // end of for
        newICE[anzahlWagen] = o;
        ICE=newICE;
        anzahlWagen++;
    }
}
Die ganzen "static" sollten noch weg, falls ihr schon mit Instanzen von Klasse arbeitet.
 

javamanki

Mitglied
@kneitzel Ich habe nun das -1 entfernt und jetzt funktioniert es
Mein Code sieht jetzt so aus:

Java:
private static int anzahlWagen = 0;
  static Wagen[] ICE = new Wagen[6];
 
  public static int getAnzahlWagen(){
    return anzahlWagen;
    }
 
 
    public static void addWagen(Wagen o){
    Wagen[] newICE = new Wagen[anzahlWagen+1];
    for (int i = 0;i<anzahlWagen ;i++ ) {
      newICE[i] = ICE[i];
    } // end of for
    newICE[anzahlWagen] = o;
    ICE=newICE;
    anzahlWagen++;
    }
}

Wenn ich nun zum Beispiel 3 Wagen zum ICE in der TestKlasse hinzufüge und jeweils dem ersten Wagen 1 firstClass, dem 2 Wagen 2 firstClass und dem dritten Wagen 3 firstClass zuweise und dann
Java:
public class ICEDemo{
  public static void main(String[] args) {
    Wagen ICE1  = new Wagen (1,1);
    Wagen ICE2 = new Wagen (2,2);
    Wagen ICE3 = new Wagen (3,3);
    IceBahn.addWagen(ICE1);
    IceBahn.addWagen(ICE2);
    IceBahn.addWagen(ICE3);
    System.out.println(IceBahn.ICE[0].getFirstClass());
    System.out.println(IceBahn.ICE[1].getFirstClass());
    System.out.println(IceBahn.ICE[2].getFirstClass());
  }
}

Das mache, werden mir auch 1,2,3 ausgegeben. Ich glaube nun sollte die Aufgabe fast erfüllt sein. Jetzt muss ich Wagen[] ICE nur noch auf private setzen und die Bedingung einfügen, dass höchstens 6 wagen erzeugt werden dürfen.
 

javamanki

Mitglied
Die ganzen "static" sollten noch weg, falls ihr schon mit Instanzen von Klasse arbeitet.
Ja, das hatten wir glaube ich schon, aber ich finde die Vorlesungen immer viel zu unübersichtilch und habe es nicht wirjlich verstanden. Ich kann doch nicht einfach nur die static wegmachen oder? Dann bekomme ich nämlich die Fehlermeldung, dass eine statische Methode erwartet wird.
 

temi

Top Contributor
Ja, das hatten wir glaube ich schon, aber ich finde die Vorlesungen immer viel zu unübersichtilch und habe es nicht wirjlich verstanden. Ich kann doch nicht einfach nur die static wegmachen oder? Dann bekomme ich nämlich die Fehlermeldung, dass eine statische Methode erwartet wird.
Du musst dann auch eine Instanz von IceBahn erzeugen. Statische Variablen und Methoden gehören zur Klasse (und existieren nur einmal). Nicht Statische zur Instanz (und existieren separat für jede Instanz).
Java:
public class ICEDemo{
  public static void main(String[] args) {
    Wagen ICE1  = new Wagen (1,1);
    Wagen ICE2 = new Wagen (2,2);
    Wagen ICE3 = new Wagen (3,3);
     
    IceBahn bahn = new IceBahn(); // Instanz erzeugen
     
    bahn.addWagen(ICE1); // Methode auf die Instanz aufrufen
    bahn.addWagen(ICE2);
    bahn.addWagen(ICE3);
    System.out.println(bahn.ICE[0].getFirstClass());
    System.out.println(bahn.ICE[1].getFirstClass());
    System.out.println(bahn.ICE[2].getFirstClass());
  }
}

Aber nochmal: Du brauchst kein neues größeres Array und du musst auch nichts kopieren!

Außerdem: In Java beginnen Variablen- und Methodennamen immer mit einem Kleinbuchstaben: "ICE1" => "ice1"
 

Neumi5694

Top Contributor
Und wenn ich dann einen Wagen entfernen will, kann ich einfach sagen ice[anzahlWagen-1] = null;?
Ja, das passt. Danach musst du natürlich die Wagenanzahl reduzieren.

Dein ursprüngliches Array darf übrigens gerne auch die Länge 0 haben, da du es eh bei jedem Hinzufügen eines Wagens ersetzt.
Ob das nun Sinn der Aufgabe ist ...
So wie ich das aus den Vorposts rausgelesen habe, solltest du es nicht ersetzen/vergrößern, sondern nur befüllen.
 
K

kneitzel

Gast
Also das einfach auf Null setzen passt nicht. Zumindest nicht in Zusammenhang mit dem bisherigen Code für das Einfügen von Elementen.

Du musst dir genau klar machen, was die einzelnen Variablen für eine Bedeutung haben sollen. Wenn du ein files Array haben willst wo du beim Einfügen immer ein neues Array erstellst, dann muss sas auch von der Logik beim Entfernen ähnlich sein. Dann brauchst du auch keine Variable abschlagen, denn das ist ja die Array Größe.

Wenn du aber unterscheiden willst, zwischen Array Größe und Anzahl Wagen, dann kannst du das Entfernen wie skizziert machen, aber dann musst du das Einfügen aus meiner Sicht anpassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Hinzufügen eines Objekts auf ein Map Java Basics - Anfänger-Themen 4
S IndexOutOfBoundsException beim hinzufügen eines Elements zu einer Liste Java Basics - Anfänger-Themen 11
J Hinzufügen eines Objekts in eine Liste, um später dann nochmal auf das Objekt zugreifen zu können Java Basics - Anfänger-Themen 8
A JTable bei löschen oder hinzufügen eines Wertes aktualisiere Java Basics - Anfänger-Themen 12
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
F SSL zu keystore hinzufügen Java Basics - Anfänger-Themen 1
mervanpolat Methoden Warum müssen wir "int ans = -1;" hinzufügen? Java Basics - Anfänger-Themen 2
NadimArazi Wie kann ich eine collision detection für die Paddles in meinem Pong Programm hinzufügen? Java Basics - Anfänger-Themen 4
I JPA CriteriaBuilder -> Custom SQL hinzufügen Java Basics - Anfänger-Themen 5
M Log4J (v2) nachträglich in allen Klassen hinzufügen Java Basics - Anfänger-Themen 9
B Zu Property Feld weitere Informationen hinzufügen? Java Basics - Anfänger-Themen 4
Soloeco JList/DefaultListModel: Wie kann ich ein Panel hinzufügen? Java Basics - Anfänger-Themen 1
G Druckerauftrag hinzufügen Java Basics - Anfänger-Themen 7
L Methoden ArrayList Werte hinzufügen und löschen Java Basics - Anfänger-Themen 32
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7
Gaudimagspam Assertions im Programm hinzufügen Java Basics - Anfänger-Themen 4
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Collections Methode (Knoten hinzufügen) für Graphen Java Basics - Anfänger-Themen 32
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
B String zu einem bestehenden String hinzufügen Java Basics - Anfänger-Themen 9
AnnaBauer21 org.w3c.dom.Element - Neues Element hinzufügen Java Basics - Anfänger-Themen 4
CptK Datentypen Objekt lässt sich nicht zu arraylist hinzufügen Java Basics - Anfänger-Themen 2
M Wie kann ich hier ein Textfeld hinzufügen Java Swing? Java Basics - Anfänger-Themen 1
J mögliche Spielzüge zu Liste hinzufügen Java Basics - Anfänger-Themen 6
L Methoden Methoden hinzufügen?! Java Basics - Anfänger-Themen 1
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
F Interface JButton von anderer Klasse hinzufügen Java Basics - Anfänger-Themen 2
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
Arif Collections Unkonstruiertes Objekt einer Collection hinzufügen Java Basics - Anfänger-Themen 2
G Wie kann ich einem StringBuilder einen int Wert formatiert hinzufügen? Java Basics - Anfänger-Themen 8
D Hinzufügen einer Site zur Ausnahmeliste nicht möglich Java Basics - Anfänger-Themen 1
O Wert in einer URL hinzufügen (in meinem Beispiel Google) Java Basics - Anfänger-Themen 7
Silvascus Void Methode einem Stringparameter im syso-Befehl hinzufügen Java Basics - Anfänger-Themen 3
L0MiN Erste Schritte Neue Punkte zu einer Map hinzufügen und dauerhaft speichern? Java Basics - Anfänger-Themen 4
I Innerhalb einer Methode suchen und hinzufügen. Neues Objekt in Suche dann? Java Basics - Anfänger-Themen 8
Spencer Reid JavaDoc zu JavaFx hinzufügen Java Basics - Anfänger-Themen 1
J ArrayList<int[]> wird beim hinzufügen von werten komplett überschrieben warum? Java Basics - Anfänger-Themen 1
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
J Element zu jList hinzufügen NullPointerExcepetion Java Basics - Anfänger-Themen 2
S JTextField zu ArrayList hinzufügen Java Basics - Anfänger-Themen 3
M JMenuItem per Button hinzufügen Java Basics - Anfänger-Themen 2
K Windows Symbolleiste Icons hinzufügen Java Basics - Anfänger-Themen 7
B Listener beim Laden (deserialize) wieder hinzufügen bzw. mitspeichern? Java Basics - Anfänger-Themen 3
B Neue Bibliothek hinzufügen Java Basics - Anfänger-Themen 2
U Dokumentation einer Library hinzufügen Java Basics - Anfänger-Themen 3
F Swing Applet: mehrere Komponenten hinzufügen Java Basics - Anfänger-Themen 1
Sogomn JLabel in anderer Klasse zum JFrame hinzufügen Java Basics - Anfänger-Themen 2
X Konstante hinzufügen Java Basics - Anfänger-Themen 3
A Fächer hinzufügen Java Basics - Anfänger-Themen 7
G element in ArrayList Hinzufügen Java Basics - Anfänger-Themen 16
J Bei Hinzufügen von JButton Programm langsam Java Basics - Anfänger-Themen 3
M ArrayList-Element hinzufügen u. löschen Java Basics - Anfänger-Themen 2
S Hinzufügen von jid3lib-0.5.4 Java Basics - Anfänger-Themen 3
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
V Java Libraries Hinzufügen Ubuntu Java Basics - Anfänger-Themen 3
G Element einem Array hinzufügen Java Basics - Anfänger-Themen 7
B Wie kann man auf das JFrame einer anderen Klasse zugreifen, etwas hinzufügen und entfernen?? Java Basics - Anfänger-Themen 3
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
Joew0815 Classpath Eclipse - Library hinzufügen (NativeBass) Java Basics - Anfänger-Themen 23
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
P Per Button, Linien Hinzufügen und bearbeiten Java Basics - Anfänger-Themen 30
J Punkte hinzufügen Tabelle Java Basics - Anfänger-Themen 5
S Externe Bibliothek zu Resources hinzufügen? Java Basics - Anfänger-Themen 5
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
A Compiler-Fehler static Array Wert hinzufügen Java Basics - Anfänger-Themen 8
A Threads Zur Laufzeit hinzufügen/entfernen Java Basics - Anfänger-Themen 10
C Variablen array element hinzufügen/entfernen Java Basics - Anfänger-Themen 10
R Bestehendes Array ein Feld hinzufügen Java Basics - Anfänger-Themen 4
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
M Jlist Elemente hinzufügen Java Basics - Anfänger-Themen 2
P Nachträglich Klasse zu Package hinzufügen Java Basics - Anfänger-Themen 16
T jar datei Bild hinzufügen Java Basics - Anfänger-Themen 4
S JDom API Doc in eclipse hinzufügen? Java Basics - Anfänger-Themen 2
eLogic Panel hinzufügen Java Basics - Anfänger-Themen 4
S KeyListener aus anderer Klasse hinzufügen Java Basics - Anfänger-Themen 19
P Dropdownbox nach hinzufügen wieder öffnen Java Basics - Anfänger-Themen 7
K jButton zur Laufzeit hinzufügen Java Basics - Anfänger-Themen 22
J String zu String[] hinzufügen Java Basics - Anfänger-Themen 4
M Properties hinzufügen Java Basics - Anfänger-Themen 12
D Buchstaben den jeweiligen Zahlen hinzufügen mit einer if. Java Basics - Anfänger-Themen 6
K Funktion zu einem JButton hinzufügen Java Basics - Anfänger-Themen 27
R Datentypen In String nach String suchen und hinzufügen Java Basics - Anfänger-Themen 2
N Dateiinhalt zu jTextArea hinzufügen Java Basics - Anfänger-Themen 2
A Array ein element hinzufügen. Java Basics - Anfänger-Themen 6
P | zu einer hashtable hinzufügen Java Basics - Anfänger-Themen 7
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
A int[] werte hinzufügen Java Basics - Anfänger-Themen 3
I Daten über Konsole hinzufügen Java Basics - Anfänger-Themen 22
G Zeichen Pro schleifendurchlauf hinzufügen Java Basics - Anfänger-Themen 7
S GridBagLayout neue Objekte hinzufügen Java Basics - Anfänger-Themen 3
A Hinzufügen neuer Pakete Java Basics - Anfänger-Themen 5
X ZipFile: wie kann ich darin eine Datei löschen und hinzufügen? Java Basics - Anfänger-Themen 5
0x7F800000 "Kommentare" an Dateien hinzufügen/auslesen? [edit: "Metadaten"] Java Basics - Anfänger-Themen 4
A Hinzufügen von Elementen in ArrayList Java Basics - Anfänger-Themen 2
A Applet Bild zu laufzeit hinzufügen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben