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 🤡


  • Mod

    JBeni schrieb:

    Oder mach mal ein Upgrade und installier was aktuelles 🤡

    Das würde ich auch ganz stark empfehlen. 🙂


Anmelden zum Antworten