2013-06-21 5 views
5

им пытаются получить вектор целых чисел, используя следующее:Как есть вектор целых чисел в Java

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

, но я получаю сообщение об ошибке:

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

Я знаю, что Вектор принимает только объекты,

Есть ли простой способ иметь вектор целых чисел без создания объекта, который просто хранит int?

Благодаря

+9

'Вектор ' –

+0

ITT: почему C# лучше, чем java –

+0

@SamIam Из-за многолетнего прошлого. –

ответ

8

Просто используйте Vector<Integer>.

Autoboxing позволит вам добавить Integer s, как если бы они были int s.

Например:

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

Кроме того, вы забыли упомянуть имя экземпляра для вектора.

1

Формальный параметр в дженериков должен быть объектом, а не примитивным. Используйте обертку Integer следующим образом: Vector<Integer>.

1

Вы можете использовать Integer Объект. Используйте 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?

Там уже есть такой тип, он называется Integer. Это boxed typeprimitive type int. Но из-за того, что реализованы generics in Java, они не поддерживают параметры типа, которые являются примитивами. Вместо этого для примитивов вы должны использовать тип boxed. Так что в вашем случае

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

Вы можете использовать тот факт, что primitives are auto boxed/unboxed to/from their boxed type писать код как

vector.add(42); 

и

int answer = vector.get(42); 

Компилятор преобразует их к соответствующему боксу и распаковке операциям.

+1

Почему вы все продолжаете публиковать один и тот же ответ? –

+1

Возможно, чтобы получить upvotes – AlexWien

+0

Он получил свой ответ в первом комментарии. Смешно публиковать все эти же ответы. –