2012-09-12 105 views
1

我看到在Java中的一些例子中向量被声明为什么是矢量和矢量<>之间的differenece

Vector v = new Vector() 

,并在一些例子中,

Vector<String> = new Vector<String>() 

我不知道什么是后者声明呢?它是否指定Vector shud组成的对象的类型?

如果是,那么如果我使用第一个声明声明一个Vector,我可以使用任何类型的对象,如果我使用第二个声明,那么该对象只能是<>中的类型。

+0

什么编程语言?用尽可能多的相关信息来标记问题非常重要。有问题的语言应该几乎总是第一个标签。此外,反引号(')允许您将代码突出显示为代码,这更易于阅读。 – KRyan

+0

对不起,我的不好....语言是java。 – ueg1990

回答

3

第一行定义ObjectVector A S,可以是任何类型的。

第二行使用Java Generics并定义了一个Vector,它只能保存String s。

4

这是Java称为泛型的一个特性。你可以找到一个Oracle官方资源here

Vector v = new Vector(); 

相同

Vector<Object> v = new Vector<Object>() 
0

正如其他海报已经回答,你确实在处理一个“通用”类。

我建议不要使用Vector clsas,因为它已被弃用。相反,使用ArrayList

使用泛型的一个好处是编译器会为您提供所谓的“类型安全”。当您最初将您的ArrayList声明为ArrayList<Ball>时,编译器将只允许您将类Ball(或其子类)的对象存储在该列表中。此外,无论何时从列表中选择一个对象,即myList.get(index),从该呼叫返回的对象都会自动转换为Ball

编写泛型类可能会非常棘手,但使用它们可以让您真正清理代码。

如果您想了解更多信息,请点击此链接指向泛型的Java Tutorial

+0

我在寻找矢量,因为它是我正在阅读的java书中的一章......但为了知识的缘故,在矢量上使用ArrayList的意思是什么?我知道在多线程场景中,Vector比ArrayList更受欢迎! – ueg1990