2012-09-12 38 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