Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [java] casting vector => int

    allora, prima di tutto voglio togliermi un dubbio: a differenza degli array i vettori non possono contenere che oggetti vero? In secondo luogo avrei bisogno di qualche idea per il casting dell'oggetto di un vettore in un int. Tante grazie.
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Supponendo che l'elemento del vettore sia un oggetto di tipo Integer, il metodo intValue() è quello che fa per te.

    intValue
    public int intValue()Returns the value of this Integer as an int.

    Specified by:
    intValue in class Number
    Returns:
    the numeric value represented by this object after conversion to type int.
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Sì. I Vector possono contenere soltanto degli oggetti e non tipi di dati primitivi.

    Quello che ti serve è il metodo che ti ha suggerito Pablob, puoi usarlo così:

    codice:
    miavar = ((Integer) mioVector.elementAt(indice)).intValue();
    Supponendo, ovviamente, che 'miavar' sia una variabile di tipo int; 'mioVector' sia un oggetto di tipo Vector che contiene degli oggetti Integer; 'indice' sia un'altra variabile di tipo int che indica l'indice di posizione dell'oggetto da convertire.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    chiari ed esaurienti, grazie ad entrambi ragazzi
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  5. #5
    forse la situazione non é rosea come pensavo... mi da java.lang.ClassCastException:java.lang.String puó darsi che ció sia dovuto al fatto che io inserisca i miei dati all'interno del vettore (sebbene numeri) attraverso uno StringTokenizer?
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  6. #6
    Lo stringTokenizer ritorna come token delle stringhe , quindi non dovresti avere dei problemi.

    Posta il codice che ti da errore
    Lang=Java
    Ambiente = Eclipse forever
    Ubuntu & Win XP Pro

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    codice:
    int numero;
    
    numero = Integer.parseint((String)mioVector.elementAt(indice))
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

  8. #8
    :mavieni: thanx, ora va alla grande, peró insomma mi rimane un po' il dubbio iniziale, perché quindi ció vuol dire che all'interno del vettore abbiamo delle stringhe o degli oggetti? O forse entrambi? E un'ultima dubbio da principiante per rompervi di prima mattina, il metodo intValue su che cosa agisce? non sulla classe vector credo dato che nell'API della suddetta classe (http://java.sun.com/j2se/1.4.1/docs/...il/Vector.html) salvo difetti visivi miei notevoli non l'ho vista...ancora grazie
    Walk fast, chew slowly.
    "We used students as subjects because rats are expensive and you get too attached to them"

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    328
    Originariamente inviato da weatherman
    :mavieni: thanx, ora va alla grande, peró insomma mi rimane un po' il dubbio iniziale, perché quindi ció vuol dire che all'interno del vettore abbiamo delle stringhe o degli oggetti? O forse entrambi? E un'ultima dubbio da principiante per rompervi di prima mattina, il metodo intValue su che cosa agisce? non sulla classe vector credo dato che nell'API della suddetta classe (http://java.sun.com/j2se/1.4.1/docs/...il/Vector.html) salvo difetti visivi miei notevoli non l'ho vista...ancora grazie
    Allora, andiamo con ordine...

    all'interno del vettore tu hai degli oggetti, oggetti di tipo String.
    Inciso: la classe String è un pò particolare, dal momento che se dichiari
    codice:
    String a ="pippo";
    String b="pippo";
    if a == b{
    System.out.println("sono uguali");
    }
    la condizione a == b è verificata in quanto in questo caso le hai dichiarate come se fossero tipi primitivi, e la VM usa il pool di stringhe per gestirle.

    Se invece dichiari
    codice:
    String a =new String("pippo");
    String b=new String("pippo");
    if a == b{
    System.out.println("sono uguali");
    }
    la condizione a == b non è verificata, in quanto sono due oggetti distinti, e quindi per confrontarne il contenuto devi usare il metodo equals().

    Se hai usato uno StringTokenizer, hai agito per forza di cose su oggetti di tipo String. QUindi nel Vector hai delle Stringhe.
    Il metodo intValue() è un metodo della classe Integer, che è la classe wrapper del tipo primitivo int, quindi puoi usare tale metodo solamente se hai un oggetto Integer. Il che, non era il tuo caso.

    codice:
    Integer numeroOgg = new Integer(5);
    int numeroInt;
    numeroInt = numeroOgg.intValue();
    HTH
    Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.