7

我试图通过使用以下方法获取整数向量:

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

但我收到一个错误:

标记“int”上的语法错误,此标记后预期的尺寸

我知道 Vector 只接受对象,

有没有一种简单的方法来拥有一个整数向量而不创建一个只存储一个 int 的对象?

谢谢

4

4 回答 4

11

只需使用Vector<Integer>.

自动装箱将允许您添加Integers,就好像它们是ints 一样。

例如:

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

此外,您忘记提及向量的实例名称。

于 2013-06-21T16:18:06.117 回答
3

有没有一种简单的方法来拥有一个整数向量而不创建一个只存储一个 int 的对象?

There already is such a type, it's called Integer. It's the boxed type of the primitive type int. But because of the way that generics in Java are implemented, they do not support type parameters that are primitives. Instead, for primitives, you must use the boxed type. So in your case

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

You can leverage the fact that primitives are auto boxed/unboxed to/from their boxed type to write code like

vector.add(42); 

and

int answer = vector.get(42);

The compiler will convert these to the appropriate boxing and unboxing operations.

于 2013-06-21T16:18:29.350 回答
1

泛型中的形参必须是对象而不是原语。像这样使用Integer包装器:Vector<Integer>.

于 2013-06-21T16:16:04.937 回答
1

你可以使用Integer对象。采用Vector<Integer>

Vector<Integer>=new Vector<Integer>();
于 2013-06-21T16:16:37.827 回答