Wie gebe ich einzelne Werte einer ArrayList aus, wenn ich 2 verschiedene Methoden mit verschiedenen Werten habe (Ich soll eine Schleife verwenden)?

... komplette Frage anzeigen

2 Antworten

Du kannst auf die einzelnen Objekte der ArrayList mit der get-Methode zugreifen und dann auf die zurückgegebenen Objekte klassisch zugreifen.

Beispiel:

Kunden.get(1).getFirma();

So erhälst du das Attribut "Firma" des ersten Objekts der Liste. Analog mit anderen Objekten und Attributen. Mit einer for-Schleife kannst du über alle Elemente der Liste iterieren.

Simples Beispiel:

for(int i=0; i<Kunden.size(); i++) {

Kunden.get(i).getFirma();

}


Für mehr Methoden und Informationen siehe die Dokumentation:
https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html


PS: Methodennamen sollten nach Konvention immer klein beginnen, auch die main-Methode

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von marioboeck
19.09.2016, 09:39

Und wie gebe ich das ganze jetzt auf der Konsole aus  ? 

System.out.println(Kunden) ?

0
Kommentar von KnusperPudding
19.09.2016, 10:46

Die Antwort ist schon ganz gut. Dennoch würde ich mir ein paar kleine Bemerkungen erlauben:

PS: Methodennamen sollten nach Konvention immer klein beginnen

Im selben Zuge bitte aber auch die Klassen-Namen: Groß.

Im Anfängerbereich finde ich es etwas 'angenehmer', da leserlicher, wenn man die Referenz des aktuellen Schleifendurchlaufs in eine lokale Variable speichert:

for (int i = 0; i < Kunden.size(); i++) {
   Kunde kunde = Kunden.get(i);
   String firma = kunde.getFirma();
}

Noch leichter jedoch wäre die enhanced loop:

for (Kunde kunde : Kunden) {
   String firma = kunde.getFirma();
}

Und wie gebe ich das ganze jetzt auf der Konsole aus  ? 

Innerhalb der Schleife, die Attribute per getter Abfragen und via System.out ausgeben.

2
Kommentar von marioboeck
19.09.2016, 11:00

List Kunden = new ArrayList();

for(int i = 0; i < Kunden.size(); i++){
Kunde kunde = Kunden.get(i);
String vorname = kunde.getVorname();
System.out.println("Der Vorname lautet " + vorname);
}

Hab das jetzt so gemacht, doch wenn ich es nun ausführe passiert in der Konsole noch garnichts. Woran kann das liegen ?

0

Alternativ zur Antwort von Turabbit kannst du auch die kurze Form wählen:

for (Kunde k : Kunden) {
System.out.println("Der Kundenname ist " + k.getNachname());
}

Dann wird der Variablen k mit jedem Durchlauf das nächste Element aus Kunden zugewiesen.

Aber: Dazu muss in der ArrayList Kunden erstmal ein Kunde sein, der kommt da ja nicht von selbst hin. Also fehlt noch:

Kunden.add(k); Kunden.add(k2); Kunden.add(k3);

Allerdings: Da du dem zweiten (parametrisierten) Konstruktor keinen Rumpf spendiert hast, passiert da nichts. Entsprechend enthält k2 keine Werte. Das gleiche gilt für k, der durch den leeren Default-Konstruktor erzeugt wurde und ebenfalls keine (bzw. leere) Werte enthält


Und wenn die Klasse irgendwie ausführbar sein soll, musst du main klein schreiben.

Vergleiche deine ähnliche Anfrage von vor ein paar Tagen. Das Antworten macht mehr Spass wenn man merkt, dass das auch berücksichtigt wird.



Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?