Brauche Beispiel für Vector
-
Ich bin grad am Java lernen, und ich find keine anständige Dokumentation, alles ist blos mit irgendwelchen kürzeln versehen, die man dann mit irgendwas im Richtigen quellcode ersetzen soll, aber was ... egal, ihr könnt mir sicher weiterhelfen:
Ich würd gern ein Vector erstellen, den mit mehreren long werten füllen, und zum Schluss dann den Vector in ein Array umwandeln.
bisheriger stand:
Vector v; for (long i = 0; i < 10; i++) v.add(i); long[] werte = v.toArray(); return werte;
Ja und folgender link hilft mir nicht weiter, weil nich ein einziges Beispiel genannt wird:
http://java.sun.com/j2se/1.5.0/docs/api/java/util/Vector.html
-
*ignore this*
-
Vectoren können nur "Object"e aufnehmen, "long" ist aber ein primitiver Datentyp, und kann deshalb garnicht in ein Vector geschrieben werden.
Wenn du Java 1.5 benutzt, wandelt der Compiler den Aufruf "v.add(i);" um in ein "v.add(Long.valueOf(i));", dann sind in dem Vector aber "Long"-Objekte, und keine "long"s (man beachte die Gross-/Kleinschreibung).
In jedem Fall liefern die beiden "toArray"-Methoden ein Array der Objekte enthält, ein "long[]" als Resultat ist absolut unmöglich. Du müsstest die einzelnen Werte "von Hand" (also in einer eigenen Schleife) rüberkopieren.
Das sollte so funktionieren (habs nicht getestet):
Vector<Long> v = new Vector<Long>(); for( long i = 0; i < 10; i++ ) v.add( Long.valueOf( i ) ); long[] result = new long[ v.size() ]; for( int i = 0; i < result.length; i++ ) result[i] = v.get( i ).longValue();
[Edit]
Long[] werte = (Long[])v.toArray();
Das wird sich mit einer ClassCastException verabschieden
-
JBeni schrieb:
Long[] werte = (Long[])v.toArray();
Das wird sich mit einer ClassCastException verabschieden
Hm, ja. Seh's auch grad. Sorry. War nur aus dem Gedächtnis runtergeschrieben...
-
17: '(' or '[' expected Vector<Long> v = new Vector<Long>(); ^ 1 error
Meine Java version ist 1.4.2-02
Ich hab genau das von JBenI in mein Programm reinkopiert klappt aber nicht.
-
Dann lass die <...> weg: das sind Generics, und die gibts erst ab Java 1.5.
Oder mach mal ein Upgrade und installier was aktuelles
-
JBeni schrieb:
Oder mach mal ein Upgrade und installier was aktuelles
Das würde ich auch ganz stark empfehlen.