Auf einzelne Element im Vektor zugreifen

Neue Frage »

Auf diesen Beitrag antworten »
Lycaner Auf einzelne Element im Vektor zugreifen

Hi, ich muss Java programmieren und habe Problemme auf einzelne Element des Objekt im Vector zugreiben.
z.B.
Spieler a= new Spieler("Hans","Müller", 38);
Spieler b= new Spieler("Klaus","Maier",40);

Vector liste=new Vector();

liste.add(a);
liste.add(b);

Wie kann ich z.B. von dem Vector nur die Namen( alle Namen) ausgeben?
Wie kann ich alles ausgeben, was in einem Vector steht.

wenn ich ein for-Schleife schreibe, wie z.B.:

for(int i=0; i<liste.size();i++){
System.out.println(liste.get(i));
}
kommt nur blödsinn raus(

Danke in vorraus.
 
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
public class Spieler {
	String vorname;
	String nachname;
	int alter;
	
	public Spieler(String vorname, String nachname, int alter){
		this.vorname = vorname;
		this.nachname = nachname;
		this.alter = alter;
	}
	
	public String name(){
		return this.vorname + " " + this.nachname;
	}
}


for(int i=0; i<liste.size();i++){
	System.out.println(((Spieler)liste.elementAt(i)).name());
}
Auf diesen Beitrag antworten »
Lycaner

Vielen Dank.
Kann man diese for-Schleife in Methode packen?
Ich meine, wie würde eine Methode aussehen, die ein Vector bekommt und alle Inhalte des Vector wiedergabt?
Auf diesen Beitrag antworten »
eulerscheZahl

Suchst du sowas?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
public class main {
	public static String gibAus(Vector v){
		String erg = "";
		for(int i=0; i<v.size();i++){
			erg += ((Spieler)v.elementAt(i)).name() + "\n";
		}
		return erg;
	}
	
	public static void main(String[] args)
    {
		Spieler a= new Spieler("Hans","Müller", 38);
		Spieler b= new Spieler("Klaus","Maier",40);
		
		Vector liste = new Vector();
		liste.add(a); 
		liste.add(b);
		
		System.out.print(gibAus(liste));
    }
}
 
Auf diesen Beitrag antworten »
Lycaner

Danke.
Aber ich bekomme es immer noch nicht hin.
Mein Problem ist, dass es alle Klausuraufagen sind und es gibt immer vorgaben. z.B.

Diese Methode sollte ein void sein:

public String name(){
return this.vorname + " " + this.nachname;
}
also habe ich die angepasst

public void name(){
System.out.print(this.vorname+" "+this.nachname);
}
Es funktionier aber ich bekomme es nicht hin die zweite Methode anzupassen.
Es sollte auch ein public void gibAus() Methode sein.

Wie würde die dann aussehen?
Auf diesen Beitrag antworten »
eulerscheZahl

Ich schätze mal, du meinst public void gibAus(Vector v) (vgl. deinen Beitrag davor).
code:
1:
2:
3:
4:
5:
6:
public static void gibAus(Vector v){
	for(int i = 0; i < v.size(); i++){
		((Spieler)v.elementAt(i)).name();
		System.out.print("\n");
	}
}


Wenn die Funktion kein Argument bekommt, müsstest du den Vector global machen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
import java.util.Vector;


public class main {
	static Vector liste;
	
	public static void gibAus(){
		for(int i = 0; i < liste.size(); i++){
			((Spieler)liste.elementAt(i)).name();
			System.out.print("\n");
		}
	}
	
	public static void main(String[] args)
    {
		Spieler a= new Spieler("Hans", "Müller", 38);
		Spieler b= new Spieler("Klaus", "Maier", 40);
		
		liste = new Vector();
		liste.add(a); 
		liste.add(b);
		
		gibAus();
    }
}
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »