# Elemente aus Arrayliste ausgeben



## chris80 (5. Mrz 2008)

Hallo zusammen,

ich bekomm es einfach nicht hin Elemente aus einer liste auszugeben.
Kann eigentlich nicht so schwer sein. Aber was ich in Büchern und I-Net finde
geht nicht.


```
import java.util.*;

class Student
  {
  String m_name;
  int m_alter;

   Student(String derName,int dasAlter)
    {
    m_name = derName;
    m_alter = dasAlter; 
    }
  }

class CListenDemo
  {
  public static void main(String []args)
    {
    
      	List pers = new ArrayList();
		pers.add ( new Student ("Schmidt",72));
		pers.add ( new Student ("Muller",48));
		pers.add ( new Student ("Fischer",55));
		pers.add ( new Student ("Schlosser",39));
		
		Iterator it = pers.iterator();
			
			while (it.hasNext()) 
				System.out.println( it.next() );
      
    
    
    }
  }
```

Was ich ausgegeben bekomme ist die Speicheradresse der Objekte, toll. 
Aber ich will ja die Daten. Was kann ich denn da machen?


----------



## Mark110 (5. Mrz 2008)

String ersterWert = (String)((ArrayList)list.get(0);

System.out.print(ersterWert);


----------



## SlaterB (5. Mrz 2008)

nicht ganz,
in der Klasse Student muss eine 
public String toString() {
return "Test";
}
Operation mit sinnvollen Inhalt definiert werden


----------



## ARadauer (5. Mrz 2008)

@tombola: bitte keine Studenten auf Strings casten, würde dir auch nicht gefallen wenn man tombola auf string castet ;-)

@chris80: was passiert wenn du

```
System.out.println( new Student ("Schlosser",39);
```
schreibst? es wird dir auch die Speicheradresse ausgegben oder?

du kannst in Student die toString methode überschreiben,
oder du castes auf Student und gibst aus was du brauchst


```
System.out.println( ((BB)it.next()).getName() );
```


----------



## chris80 (5. Mrz 2008)

Hey, erstmal Danke für eure Antworten das ging ja super fix.

@ARadauer

Richtig, wenn ich das angebe bekomme ich auch die Speicheradresse.

Das mit dem Casten hört sich gut an, leider kenn ich mich damit nicht sogut aus.

Ich hab jetzt:


```
System.out.println((Student)it.next());
```

geschrieben, das bringt natürlich noch nichts aber ist zulässig.

jetzt kam ich auf folgende Idee folgendes zu machen:


```
System.out.println((Student)it.next().m_name);
```

Aber da meckert der Compiler.
Aber das müsste doch gehen, weil ich laufe doch über diese Objekte vom Typ Student, und jeder hat name und alter.


----------



## SlaterB (5. Mrz 2008)

System.out.println((Student)it.next().m_name);
= 
System.out.println((Student) (it.next().m_name));


du brauchst aber
System.out.println(((Student)it.next()).m_name);
wie ARadauer schon schrieb


----------



## chris80 (5. Mrz 2008)

Oh, hatte ich glatt übersehen da fehlte eine Klammer.

Aber jetzt geht es auch. Also vielen Dank an euch alle.


----------

