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.
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"
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...
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ì:
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.codice:miavar = ((Integer) mioVector.elementAt(indice)).intValue();
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
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"
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"
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
codice:int numero; numero = Integer.parseint((String)mioVector.elementAt(indice))
Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...
: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"
Allora, andiamo con ordine...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
all'interno del vettore tu hai degli oggetti, oggetti di tipo String.
Inciso: la classe String è un pò particolare, dal momento che se dichiari
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.codice:String a ="pippo"; String b="pippo"; if a == b{ System.out.println("sono uguali"); }
Se invece dichiari
la condizione a == b non è verificata, in quanto sono due oggetti distinti, e quindi per confrontarne il contenuto devi usare il metodo equals().codice:String a =new String("pippo"); String b=new String("pippo"); if a == b{ System.out.println("sono uguali"); }
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.
HTHcodice:Integer numeroOgg = new Integer(5); int numeroInt; numeroInt = numeroOgg.intValue();
Il programmatore lo vedi dal coraggio, dall'altruismo, dalla fantasia...