2013-06-21 22 views
5

im cercando di ottenere un vettore di interi utilizzando la seguente:Come avere un vettore di numeri interi in Java

Vector<int> vec =new Vector<int>(); 

ma ottengo un errore:

Syntax error on token "int", Dimensions expected after this token

Sono consapevole che Il vettore accetta solo oggetti,

c'è un modo semplice di avere un vettore di numeri interi senza creare un oggetto che memorizza solo un int?

Grazie

+9

'Vector ' –

+0

ITT: perché C# è meglio di java –

+0

@SamIam A causa di anni di senno di poi. –

risposta

8

Basta usare Vector<Integer>.

Autoboxing consente di aggiungere Integer s come se fossero int s.

Ad esempio:

Vector<Integer> vector = new Vector<>(); //Diamonds are allowed in 7+ 
vector.add(5); 

Inoltre, ti sei dimenticato di citare un nome di istanza per il vostro vettore.

1

Il parametro formale di farmaci generici devono essere un oggetto e non un primitivo. Utilizzare il wrapper Integer in questo modo: Vector<Integer>.

1

è possibile utilizzare l'oggetto Integer. Utilizzare Vector<Integer>

Vector<Integer>=new Vector<Integer>(); 
2

is there a simple way of having a vector of integers without creating an object that just stores an int?

Ci

già è un tale tipo, si chiama Integer. È lo boxed type dello primitive type int. Ma a causa del modo in cui sono implementati generics in Java, non supportano i parametri di tipo che sono primitivi. Invece, per le primitive, devi usare il tipo in scatola. Quindi nel tuo caso

Vector<Integer> vector = new Vector<Integer>(); 

È possibile sfruttare il fatto che primitives are auto boxed/unboxed to/from their boxed type a scrivere codice come

vector.add(42); 

e

int answer = vector.get(42); 

Il compilatore converte questi per la boxe appropriata e le operazioni di unboxing.

+1

Perché continuate a postare sempre la stessa risposta? –

+1

Forse per ottenere voti positivi – AlexWien

+0

Ha ottenuto la sua risposta nel primo commento. È ridicolo pubblicare tutte queste stesse risposte. –

Problemi correlati