Zugriff auf Vector-Element

Status
Nicht offen für weitere Antworten.

monade

Mitglied
Hi!
Angeblich konvertiert man einen Float-Array folgendermaßen in einen Vector:
Code:
Float[] flAr = new Float[]{1f,2f,3f};
Vector<Float> v;
v = new Vector(Arrays.asList(flAr));
Aber wie kann ich jetzt auf meine Floats in dem Vector zugreifen?

Danke!
lg, monade
 
Code:
flAr[i]
entspricht folgendem:
Code:
v.get(i)
 
dein Code funktioniert bei mir (Java 6) so wie er soll.

Du solltest allerdings statt
Code:
v = new Vector(Arrays.asList(flAr));

das hier

Code:
v = new Vector<Float>(Arrays.asList(flAr));

schreiben.
 
Angeblich konvertiert man einen Float-Array folgendermaßen in einen Vector:

Das kann man leicht prüfen, wenn man in die API guckt. Arrays.asList(...) ist eine statische Methode, die ein Object vom Typ List zurückliefert. Und List ist ein Interface, daß z. B. in der Klasse Vector enthalten ist. Kostet genau drei Klicks und ein bißchen gucken.

Code:
import java.util.*;

public class Test2 {

	public static void main(String[] args) {

		Float[] flAr = new Float[]{1f,2f,3f};
		Vector<Float> v;
		v = new Vector<Float>(Arrays.asList(flAr));
		
		System.out.println("Größe = " +  v.size());
		for(Float f:v){
			System.out.println(f);
		}
		
	}

}

Funktioniert tadellos. Was bei Dir fehlt ist: mal in die API gucken! Dann hättest Du gesehen, daß v.get(0) ein Object zurückliefert und keinen Float. Daher mußt Du entweder Generics nutzen, wie oben, damit der Runtime klar ist, daß in Deinem Vector nur Floats stecken oder du mußt das Object nach Float casten:

Code:
Float f = (Float) v.get(0);
 
Oh man, jetzt hat sich beim Posten des Minimalbeispieles eine Veränderung eingeschlichen, so dass das ganze tatsächlich funktioniert. In Wirklichkeit steht in meinem Code nämlich:
float[] flAr = new float[]{1f,2f,3f};
Vector<Float> v;
v = new Vector(Arrays.asList(flAr));
D.h. mit anderen Worten ich muss meinen bisherigen float-Array in einen Float-Object-Array wrappen. Hab aber jetzt auch nicht auf Anhieb gefunden, wie das geht.

Edit: okay, danke euch. Das Vector-Konstrukt ist mir jetzt zu kompliziert, wenn ich da nur Float-Objects und keine floats aufnehmen kann (auf den Datentyp des Ursprungsarrays hab ich leider keinen Einfluss), daher lass ich jetzt die Finger davon.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben