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.
Hallo,
ich verstehe leider nicht, wie man Objekte in eine Liste einfügt. Ich habe schon lange gegoogelt, aber nichts hilfreiches gefunden.
Java:
import java.util.ArrayList;
public class Student {
protected String name;
protected int matrNr;
public Student(String name, int matrNr) {
this.name = name;
this.matrNr = matrNr;
}
public static void main(String[] args) {
ArrayList<Student> liste = new ArrayList<Student>();
liste.add("Hallo", 2992130);
}
}
Der sagt mir, dass ich add zu addAll wechseln soll, und wenn ich das mache, dann sagt er wieder, dass ich es zu add wechseln soll. Wo liegt das Problem?
Du verwendest zwei Parameter, nämlich "Hallo" und 2992130, in der add-Methode, obwohl nur ein Parameter erlaubt ist (es sei denn, man möchte ein Objekt an einer bestimmten Stelle einfügen, was du ja sicher nicht vorhast).
Ausserdem hast du deine Liste zwar als ArrayList<Student> deklariert, ich sehe aber nirgends, daß du eine Instanz vion Student anlegst (mit new Student(...)).
Ok. Alles klar. Danke für die schnelle Antwort.
Nun möchte ich noch die komplette Liste auf der Konsole ausgeben.
Mit der Hashmap kann ich es zwar, aber ich möchte es auch mit der ArrayList können.
Java:
import java.util.ArrayList;
public class Student {
protected String name;
protected int matrNr;
public Student(String name, int matrNr) {
this.name = name;
this.matrNr = matrNr;
}
static ArrayList<Student> liste = new ArrayList<Student>();
public static void main(String[] args) {
liste.add(new Student("Name", 123456));
print();
}
public static void print() {
for (int i = 0; i < liste.size(); i++) {
System.out.println(liste.get(i));
}
}
}
Leider bekomme ich so eine komische Ausgabe auf der Konsole.
Du musst die entsprechende toString() Methode deiner Klasse überschreiben.
Woher soll Java denn wissen wie du die Daten des Objektes deiner Klasse ausgegeben haben will?
Ohne dem Überschreiben dieser Methode wird die "toString()" Methode der Klasse Object aufgerufen und diese gibt Referenz des Objektes aus.
Du musst die entsprechende toString() Methode deiner Klasse überschreiben.
Woher soll Java denn wissen wie du die Daten des Objektes deiner Klasse ausgegeben haben will?
Alles klar! Danke. Darin lag der Fehler.
Jetzt habe ich es verstanden denke ich.
Ich konnte mich leider nicht mehr damit beschäftigen, weshalb meine Antwort so spät kommt.
Ich danke allen für die Unterstützung. Weiter so!
Hier mein Code:
Java:
import java.util.ArrayList;
public class Student {
protected String name;
protected int matrNr;
public Student(int matrNr, String name) {
this.matrNr = matrNr;
this.name = name;
}
public String toString() {
return "Matrikelnummer: " + matrNr + "\n" + "Name des Studenten: "
+ this.name;
}
static ArrayList<Student> liste = new ArrayList<Student>();
public static void main(String[] args) {
liste.add(new Student(123456, "Max"));
liste.add(new Student(654321, "Moritz"));
for (Student ausgabe : liste) {
System.out.println(ausgabe + "\n");
}
}
}