Objekte einer Arraylist auslesen

Hallo,
ich arbeite das erste mal mit Arraylisten und habe erfolgreich eine erstellt.
Jedoch stelle ich mir die Frage wie ich bestimmte Daten Auslesen kann.

Ich habe eine Klasse namens Class2 erstellt. In dieser wird eine Variable gespeichert.
Code:


public class Class2 extends Class1 {
	String pHobby;
	
	Class2(String Hobby, String Name, int Alter)
	{
		super(Name,Alter);
		this.pHobby = Hobby;
		System.out.println("Meine Hobbys sind: " + Hobby);
	}
}

Falls ich nun ein Objekt erstellen würde, wäre es ja einfach diese Variable auszulesen:

System.out.println(variable.pHobby);

Nun hätte ich die Frage wie ich das bei einer Arrayliste machen würde…
Kann ich dass dann nur durch Funktionen auslesen?

import java.util.ArrayList;


public class Arraylist {

	public static void main(String[] args) {
		ArrayList<Class2> liste = new ArrayList<Class2>(); //
		
		liste.add(new Class2("Fußball spielen und programmieren","Juri",32));
		liste.add(new Class2("Handball spielen und scripten","Frank",19));
		
		for(Class2 element : liste){ 
			System.out.println(element);
			
		}
	}

}

Ich hoffe ihr könnte mir weiterhelfen :slight_smile:

Listen haben eine get Methode.

for(int i = 0; i < liste.size(); i++) {
    System.out.println(liste.get(i));
}

Eine Liste ist wie der Name schon sagt eine Ansammlung an Objekten. Durch diese kannst du mittels der foreach schleife durchgehen. Wie du es schon gezeigt hast.

Um auf dessen Variablen und Methoden zuzugreifen geüngt einfach der Punktoperator.

Allerdings solltest du dich mit mehreren Code richtlinene auseinander setzten. Zum Beispiel dem Getter/Setter Konzept und Beschriftung / Namen von Methoden und Variablen.

            System.out.println(element.pHobby);
           
        }```

@Prototype : Ich bin sicher Zero wird sich bald genug mit Richtlinien usw. auseinandersetzen dürfen. Fürs erste ist wer wohl mit deinem konkreten Hinweis auf den Punktoperator glücklich. Viel wichtiger ist das Verstehen des Zusammenhanges, den Zero wohl nicht sofort geschnallt hat: Dass man eben auf die Variablen und Methoden eines Objektes mit dem Punktoperator zugreifen kann, egal ob man das Objekt selber erstellt hat oder es aus einer Liste hat. Die Schleife sagt ja übersetzt auf deutsch: Für (jedes Objekt der Klasse) Class2 (lege mir eine Variable an namens) element (aus der Liste) liste (und mach folgendes damit) System.out.println(element.hobby). In Zeros code hat die Variable den Namen variable gehabt, hier hat sie den Namen element.

Wie sieht es nun aus, wenn ich nur von dem 3. Objekt die Variable pHobby haben möchte?
Mit der Foreach Schleife habe ich das verstanden, jedoch spricht man dann alle Objekte an.

Das ist das, was @Bene geschrieben hat. Mit der get-Methode kannst du sagen, das wievielte Objekt du aus der Liste haben möchtest. Aber aufgepasst: die Zählung fängt bei 0 an (wie in den meisten Programmiersprachen üblich). Um das 3. Objekt zu bekommen, musst du also list.get(2) aufrufen.

Wenn du eine Klasse aus der Java API verwendest, ist es immer hilfreich sich erst einmal die
Beschreibung durchzulesen oder zumindest zu überfliegen:
Java Platform SE 8

Bei der ArrayList sind die Beschreibungen der Methoden unter #Method Summary
zumindest sehr eindeutig und selbst wenn dir das ein oder andere nichts sagt, empfielt es sich
drüberzuschauen:
ArrayList (Java Platform SE 8 )

Stimmt, die erweiterte for-each-Schleife ist eigentlich ein Konstrukt, keine Funktion, aber hier verschwimmen die Begriffe.

Auf jeden, ermöglicht eine Liste (Interface) wahlfreien Zugriff auf ihre Elemente, Index :0 1 5 oder 256 usw.

add insert
remove delete
get gib
usw.
boolean

Setze dich ein bisschen mit der Doku/Api auseinander.

Array-basiert oder verknüpfungs-basiert oder im Cache, das alles ist spannend, imho, hth. Edit: Ach so, Hobbys gutt. :slight_smile:

Danke für alle Antworten, ich habe es jetzt geschafft. :slight_smile: