Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
---- formale Sprachen (http://www.informatikerboard.de/board/board.php?boardid=12)
----- Auf einzelne Element im Vektor zugreifen (http://www.informatikerboard.de/board/thread.php?threadid=1542)


Geschrieben von Lycaner am 07.07.2013 um 14:16:

  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.



Geschrieben von eulerscheZahl am 07.07.2013 um 15:15:

 

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());
}



Geschrieben von Lycaner am 07.07.2013 um 20:39:

 

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?



Geschrieben von eulerscheZahl am 07.07.2013 um 21:28:

 

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));
    }
}



Geschrieben von Lycaner am 07.07.2013 um 22:28:

 

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?



Geschrieben von eulerscheZahl am 08.07.2013 um 07:08:

 

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();
    }
}


Forensoftware: Burning Board, entwickelt von WoltLab GmbH