Frage zur ArrayList

chillazz

Mitglied
Hallo,

ich bin sehr neu in der Javawelt und habe eine Frage zur ArrayList. Ich arbeite mit Eclipse und wenn ich dort eine ArrayList initialisiere und dann mit der Methode Add füllen will kommt der Hinweis:
al.add(); -->Object arg0

Was meint Eclipse mit Object. Ich weiß nur dass alle Klassen von Object abgeleitet werden. z.b. ich möchte in meine Liste eine Adresse hinzufügen aus 3 Strings.
wenn ich jetzt
al.add("String1","String2","String3",) schreibe geht es nicht.
Wie könnte ich das realisieren und was ich genau mit dem Object als Vorschlag gemeint?!

Hoffe meine Frage ich nicht als zu "blöd"...
 
Guten Morgen,

wenn ich jetzt
al.add("String1","String2","String3",) schreibe geht es nicht.
Wie könnte ich das realisieren und was ich genau mit dem Object als Vorschlag gemeint?!

eine gute Möglichkeit wäre:
Code:
// Liste füllen ...
List<String> al = new ArrayList<String>();
al.add("String1");
al.add("String2");
al.add("String3");

// Liste ausgeben ...
for(String cur : al) {
  System.out.println("--> " + cur);
}

Bei den spitzen Klammern spricht man von Generics und da gibst du ab Java 5 den Typ an, den die Liste "annehmen darf".
Du hast in deiner Implementierung keinen Datentyp angegeben, also wird das oberste genommen: Object.

Gruß
Gerrit
 
Eine andere Möglichkeit wäre auch, dass du dir ein "Adresse"-Objekt schreibst, dass
die drei Strings als Attribute hält.

Dann könnte dein Code so aussehen:
Code:
ArrayList<Adresse> al = new ArrayList<Adresse>();

al.add(new Adresse("String1", "String2", "String3"));

Damit weisst du auch wohin deine Strings gehören, wenn du die Liste wieder durchläufst.
 
Wenn jeder String eine einzelne Adresse ist, so ist der Ansatz von glhgl richtig.
Wenn deine 3 Strings allerdings Straße+nr , plz und Ort wiederspiegeln sollen so ist der Ansatz von Volti richtig.

Warte mal noch 2 min dann stell ich dir ein Beispiel online.
 
Ich habe mal 2 Klassen erstellt.

Eine Klasse Adresse:
Java:
public class Adresse {

    String strasse;

    String hausnummer;

    int plz;

    String ort;

    //Standardkonstruktor
    public Adresse() {

    }

    //Konstruktor mit Übergabeparametern
    public Adresse(String strasse, String hausnummer, int plz, String ort) {
        this.strasse = strasse;
        this.hausnummer = hausnummer;
        this.plz = plz;
        this.ort = ort;
    }

    //Getter und Setter Methoden zur manipulation der Klassenvariablen
    public String getStrasse() {
        return strasse;
    }

    public void setStrasse(String strasse) {
        this.strasse = strasse;
    }

    public String getHausnummer() {
        return hausnummer;
    }

    public void setHausnummer(String hausnummer) {
        this.hausnummer = hausnummer;
    }

    public int getPlz() {
        return plz;
    }

    public void setPlz(int plz) {
        this.plz = plz;
    }

    public String getOrt() {
        return ort;
    }

    public void setOrt(String ort) {
        this.ort = ort;
    }
}

und hier die Anwendung die mit ArrayList und der oberen Klasse Adresse arbeitet.

Java:
import java.util.ArrayList;

public class ArrayListExample {

    public static void main(String[] args) {

        //ArrayList erstellen
        ArrayList<Adresse> adressListe = new ArrayList<Adresse>();

        //Du kannst Adressen nun erst erstellen...
        Adresse adresse = new Adresse();
        adresse.setHausnummer("1");
        adresse.setOrt("Hauptstadt");
        adresse.setPlz(10000);
        adresse.setStrasse("Nebenstraße");

        //... und dann hinzufügen
        adressListe.add(adresse);

        //Oder du kannst sie direkt mit einem Konstruktor anlegen der die Eingaben entgegennimmt und alles in einer Zeile machen
        adressListe.add(new Adresse("Straße", "Hausnummer", 12345, "Ort"));

        //Du kannst nun über 2 Wege auf die liste Zugreifen

        //Über einen Index
        //Den Ort der ersten Adresse ausgeben
        System.out.println(adressListe.get(0).getOrt());

        //Den Ort der zweiten Adresse ausgeben
        System.out.println(adressListe.get(1).getOrt());

        // Oder du kannst die Ganze liste durchgehen
        for (Adresse element : adressListe) {
            System.out.println(element.getPlz());
        }
    }
}

Das ist quasi der Ansatz den Volti vorgeschlagen hat.
Und zu deiner letzten Aussage..... Es gibt keine blöden Fragen, nur blöde Antworten.

Allerdings hättest du auch sicherlich bei google oder hier über die Suchfunktion ein entsprechendes Beispiel gefunden.
 
Zuletzt bearbeitet:
Zurück