Vector in ein Array umwandeln

Status
Nicht offen für weitere Antworten.

Pudelchen

Mitglied
koennte mir einer erklaeren wie ich einen Vector in ein Array umwandle?
Ich weiss irgendwas mit toArray() aber wie geht die Syntax genau?
 
B

bygones

Gast
toArray liefert nur einen Object[] zurück...
sagen wir du hast einen Vector mit Strings
Code:
String[] sA = (String[])vector.toArray(new String[vector.size()])

statt String dann einfach den Typ der im Vector sthet
 

L-ectron-X

Gesperrter Benutzer
Weils häufiger vorkommt, ein String-Beispiel:
Code:
String[] str = (String) myVector.toArray();
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html#toArray()

Edit: hehe dbac, der gleiche Grundgedanke. Wo das wohl her kommt... :wink:
 

L-ectron-X

Gesperrter Benutzer
@dbac: Hm, ich ich liebe die Collections, weil sie so mächtig sind und man jede Menge lernen kann.
Ich habe mich verhauen? Wo denn? Etwa bei den Array-Klammern?

@Student: 1.4er kein Problem aber ich tue mich etwas schwer mit der 1.5er Dokumentation.
Vielleicht kann mir das ja mal jemand klar machen:
API-Doc 1.5 hat gesagt.:
public <T> T[] toArray(T[] a)
 
B

bygones

Gast
siehe meinem Post. du musst der Methode den ArrayTyp mitgeben damit sie per Reflection den Array erstellen und dann mit den elementen füllen kann.

zu
Code:
public <T> T[] toArray(T[] a)
das ist eine generische Methode. T ist eine Typvariable. das <T> ist sozusagen: "Methode, achtung, eine Typvariable namens T wird hier benutzt". T kann eine beliebige Klass sein. D.h. man gibt der Methode einen Array vom Typ T (z.b. String) und er gibt dir dann den Typ als Array wieder zurück (gefüllt mir der Collection)...

d.h. ab 1.5 geht das dann auch so:
Code:
String[] ss = s.toArray(new String[s.size()]);
mit s = Collection....

verständlich ?
 

L-ectron-X

Gesperrter Benutzer
deathbyaclown hat gesagt.:
du musst der Methode den ArrayTyp mitgeben damit sie per Reflection den Array erstellen und dann mit den elementen füllen kann.
OK, Du benutzt die Methode
Code:
toArray(Object[] a)
Ich habe die
Code:
toArray()
benommen. Was ist daran falsch? Wird mit dieser Methode nicht auch wenigstens ein Object-Array erstellt?

Edit: Mist, habe gerade kein Editor und kein SDK zur Hand, sonst hätte ich es längst ausprobiert. :?
 
B

bygones

Gast
ja ein Object[] array - aber kein String Array !
Code:
String[] ss = s.toArray(new String[s.size()]);
Object[] oo = s.toArray();
ss = (String[])oo;
führt zu einer ClassCastException...
 

Bleiglanz

Gesperrter Benutzer
wegen des Erasure + Kompatibilität musst du ein Array vom richtigen Typ erst reinstecken
Code:
public <T> T[] toArray(T[] a)
das erste <T> ist der generische Typ T (gehört zu den Modifiern)
T[] ist der Rückgabetyp der Funktion und T[] a einfach das Argument

ein echter krampf, ich hätte mir auch gewünscht, dass eine
List<Birnen> eine einfache Birnen[] toArray(); haben würde; aber leider geht das wohl nicht...
 

Pudelchen

Mitglied
Das mit dem umwandeln wuerde ja auch klappen. aber ich habschon wieder ein neues Problem mit diesem Vector zeug.
Also kurz mal hier der Code:
Code:
public void DateiLesen(Vector v)throws FileNotFoundException, IOException{
     
     File datei = new File("Parametertabelle.txt");
     leser = new FileReader(datei);
     int gelesenInt = 0;	
      
        String Zeichen;
        for(int i=0; i<100; i++){
    	Zeichen="";
        try{
        gelesenInt = leser.read();
        
        char gelesenChar = (char) gelesenInt;
        
     	while((gelesenChar!=' ')&&(gelesenChar!='\t')&&(gelesenChar!='\n')){
     	  	Zeichen=Zeichen+gelesenChar;
       		gelesenInt = leser.read();
       		gelesenChar = (char) gelesenInt; 
      		}
       } catch(IOException e){ e.printStackTrace();}
        v.addElement(Zeichen);
       
       
    	}               
}
Hier lese ich mein Woerter in den Vector, aber jetzt kommst:
Irgendwas mach ich falsch, denn hier wird diese Funktion aufgerufen:
Code:
public void init (){
        
              
                try{
        		DateiLesen(v);
                        System.out.println(v);
                }catch(IOException e){ e.printStackTrace();}
      
                String[] s = (String[])v.toArray(new String[v.size()]);
Aber er gibt mir den vector nicht mehr aus. Der Compiler meldet auch keinen Fehler. An was kann den das liegen?
 
B

bygones

Gast
das mit dem komischen toArray zeugs (ich stimme Bleiglanz zu) stammt daher weil REflections genutzt werden.

Code von toArray()
Code:
public Object[] toArray() {
	Object[] result = new Object[size];
	System.arraycopy(elementData, 0, result, 0, size);
	return result;
    }
und von toArray(T[])
Code:
public <T> T[] toArray(T[] a) {
        if (a.length < size)
            a = (T[])java.lang.reflect.Array.
		newInstance(a.getClass().getComponentType(), size);
	System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }

das ist ein generics problem - da man nicht
Code:
T[] tArray = new T[size];
machen kann
 

Bleiglanz

Gesperrter Benutzer
nur so zur info

wenn die List zufällig leer ist, also zu laufzeit kein einziges Element mehr enthält, dann gibt es real keine Möglichkeit, den Rückgabetyp zu ermitteln...
 
B

bygones

Gast
natürlich klappt das net - ich habe ja auch geschrieben, dass das eine Exception wirft !
 

Pudelchen

Mitglied
Oh Oh, Jungs,
Ich gebs ja nur ungern zu aber das ist mir irgendwie ne Nummer zu hoch. Ich bin in Sachen Java noch gruen hinter den Ohren.
Kann mir jemand anfaengerfreundlich sagen wie ich denn nun den Verctor von der einen in die andere Funktion bekommen kann? und dann in der neuen Funktion in ein Array umwandle?
Bitte
 
B

bygones

Gast
Pudelchen hat gesagt.:
Oh Oh, Jungs,
Ich gebs ja nur ungern zu aber das ist mir irgendwie ne Nummer zu hoch. Ich bin in Sachen Java noch gruen hinter den Ohren.
Kann mir jemand anfaengerfreundlich sagen wie ich denn nun den Verctor von der einen in die andere Funktion bekommen kann? und dann in der neuen Funktion in ein Array umwandle?
Bitte
sry :wink:

in eine andere Funktion einfach über Parameter - oder versteh ich das falsch...
das umwandeln siehe meinen ersten Post mit dem String[] beispiel
 

Bleiglanz

Gesperrter Benutzer
Pudelchen hat gesagt.:
Hier lese ich mein Woerter in den Vector, aber jetzt kommst:
Irgendwas mach ich falsch, denn hier wird diese Funktion aufgerufen:
Code:
public void init (){
                String[] s = (String[])v.toArray(new String[v.size()]);
Aber er gibt mir den vector nicht mehr aus. Der Compiler meldet auch keinen Fehler. An was kann den das liegen?

das toArray sollte definitiv funktionieren?

bist du sicher, dass v das richtige v ist?

mach mal System.out.println(v.size())?

Bitte präzisiere "Aber er gibt mir den vector nicht mehr aus", was heisst das?
 

Reality

Top Contributor
Hi!
deathbyaclown hat gesagt.:
ja ein Object[] array - aber kein String Array !
Code:
String[] ss = s.toArray(new String[s.size()]);
Object[] oo = s.toArray();
ss = (String[])oo;
führt zu einer ClassCastException...

Warum ist das eigentlich so?

Liebe Grüße
Reality
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Array in Vector speichern Java Basics - Anfänger-Themen 2
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
T Array-Vector Problem Java Basics - Anfänger-Themen 18
L Vector einem Array hinzufügen Java Basics - Anfänger-Themen 14
K Vector zu Array machen Java Basics - Anfänger-Themen 10
G string Array in eine Vector packen Java Basics - Anfänger-Themen 10
C Array von Vector oder ArrayList Objekten Java Basics - Anfänger-Themen 8
U Vector in Array packen Java Basics - Anfänger-Themen 6
C was is schneller Vector oder double Array Java Basics - Anfänger-Themen 5
C Array in Vector Java Basics - Anfänger-Themen 6
M Vector in ein String-Array schreiben Java Basics - Anfänger-Themen 2
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
P Objekte in Vector werden überschrieben Java Basics - Anfänger-Themen 4
E Methoden new Vector().add(x).add(x); ? Java Basics - Anfänger-Themen 5
F Vector istGeordnet Java Basics - Anfänger-Themen 15
R Vector-Filterfunktion Java Basics - Anfänger-Themen 4
Todesbote Map (Key=String; Value = Vector) Value/Vector sortieren Java Basics - Anfänger-Themen 13
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
M Vector eines Vectors einzeln ausgeben Java Basics - Anfänger-Themen 9
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
J Erzeugung eines Vector-Objekts - Frage zum Typ Java Basics - Anfänger-Themen 3
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
A Author in Vector Java Basics - Anfänger-Themen 22
M Vector überschreibt Elemente bei add()-Methode Java Basics - Anfänger-Themen 10
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
B Globale vector? Java Basics - Anfänger-Themen 7
E 2 Dimensionaler Vector Java Basics - Anfänger-Themen 5
T Map<String, Vector>? Java Basics - Anfänger-Themen 11
P Collections Vector füllen in for-Schleife Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
M 2D Vector Java Basics - Anfänger-Themen 2
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
E Datentypen Klasse Vector aus der Standard-API anwenden Java Basics - Anfänger-Themen 7
D Klasse Vector entwerfen Java Basics - Anfänger-Themen 7
A Arrays vs Liste vs Vector Java Basics - Anfänger-Themen 30
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
S Datentypen Vector auslesen Java Basics - Anfänger-Themen 12
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
T Vector-Positin anzeigen Java Basics - Anfänger-Themen 3
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
C Vector<Object> Probleme Java Basics - Anfänger-Themen 38
C Datentypen Probleme mit Vector.contains() Java Basics - Anfänger-Themen 10
M Datentypen function(Vector<SuperClass>), Vector<Subclass> Java Basics - Anfänger-Themen 6
L Vector Sortieren Java Basics - Anfänger-Themen 8
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
kitz Telefonbuch (Vector) Java Basics - Anfänger-Themen 17
E Arraylist mit Daten aus Vector füllen Java Basics - Anfänger-Themen 7
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
F Vector wird überschrieben Java Basics - Anfänger-Themen 8
T Vector sortiern Java Basics - Anfänger-Themen 7
C Frage zu Vector und muliplizieren des Inhaltes Java Basics - Anfänger-Themen 2
S Vector von eigenen Klassen Java Basics - Anfänger-Themen 2
J Collection Vector Java Basics - Anfänger-Themen 8
Streeber ArrayList/Vector, mehrdimensional Java Basics - Anfänger-Themen 11
N Was ist der Unterschied zwischen ArrayList und Vector? Java Basics - Anfänger-Themen 3
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
B Hilfe zum einem Problem mit Vector Java Basics - Anfänger-Themen 8
H Vector - Fehler? Java Basics - Anfänger-Themen 2
babel einen Vector nach Datum sortieren Java Basics - Anfänger-Themen 21
P Vector und Exception Java Basics - Anfänger-Themen 7
K Vector Java Basics - Anfänger-Themen 3
K Vector Java Basics - Anfänger-Themen 10
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
T Object aus Vector übergeben Java Basics - Anfänger-Themen 2
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
P Vector mit double Java Basics - Anfänger-Themen 3
P Vector Elemente auslesen Java Basics - Anfänger-Themen 9
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
C Unterschied zwischen ArrayList und Vector Java Basics - Anfänger-Themen 2
W Vector mit String[] auslesen Java Basics - Anfänger-Themen 4
Povlsen84 Initlialisierung, Vector, serialVersionUID . kleine Fragen Java Basics - Anfänger-Themen 4
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
B Dopplete aus Vector entfernen Java Basics - Anfänger-Themen 8
E Vector Fehler bei allen Methoden von Vector Java Basics - Anfänger-Themen 2
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
L Multidimensional Vector - Recordset Java Basics - Anfänger-Themen 5
K Objektklasse mit leerem Vector füllen Java Basics - Anfänger-Themen 6
K Vector wird überschrieben Java Basics - Anfänger-Themen 7
G Vector Strijng parsen Java Basics - Anfänger-Themen 6
K vector cannot be resolved Java Basics - Anfänger-Themen 3
G Zeichenkette suchen in Vector-Klasse Java Basics - Anfänger-Themen 11
R fehler beim incrementellen schreiben in einen vector Java Basics - Anfänger-Themen 11
M ObjectInputStream, Object und Vector<Object> Java Basics - Anfänger-Themen 4
G Vector, equal & Casts Java Basics - Anfänger-Themen 5
N Objekte in einen Vector packen oder nicht? Java Basics - Anfänger-Themen 3
D Frage zu Vector Java Basics - Anfänger-Themen 7
S Problem mit Vector Java Basics - Anfänger-Themen 2
G Object[] [] nach vector casten. Java Basics - Anfänger-Themen 3

Ähnliche Java Themen


Oben