我看到在Java中的一些例子中向量被聲明爲什麼是矢量和矢量<>之間的differenece
Vector v = new Vector()
,並在一些例子中,
Vector<String> = new Vector<String>()
我不知道什麼是後者聲明呢?它是否指定Vector shud組成的對象的類型?
如果是,那麼如果我使用第一個聲明聲明一個Vector,我可以使用任何類型的對象,如果我使用第二個聲明,那麼該對象只能是<>中的類型。
我看到在Java中的一些例子中向量被聲明爲什麼是矢量和矢量<>之間的differenece
Vector v = new Vector()
,並在一些例子中,
Vector<String> = new Vector<String>()
我不知道什麼是後者聲明呢?它是否指定Vector shud組成的對象的類型?
如果是,那麼如果我使用第一個聲明聲明一個Vector,我可以使用任何類型的對象,如果我使用第二個聲明,那麼該對象只能是<>中的類型。
第一行定義Object
的Vector
A S,可以是任何類型的。
第二行使用Java Generics並定義了一個Vector
,它只能保存String
s。
這是Java稱爲泛型的一個特性。你可以找到一個Oracle官方資源here。
Vector v = new Vector();
相同
Vector<Object> v = new Vector<Object>()
正如其他海報已經回答,你確實在處理一個「通用」類。
我建議不要使用Vector clsas,因爲它已被棄用。相反,使用ArrayList。
使用泛型的一個好處是編譯器會爲您提供所謂的「類型安全」。當您最初將您的ArrayList聲明爲ArrayList<Ball>
時,編譯器將只允許您將類Ball
(或其子類)的對象存儲在該列表中。此外,無論何時從列表中選擇一個對象,即myList.get(index)
,從該呼叫返回的對象都會自動轉換爲Ball
。
編寫泛型類可能會非常棘手,但使用它們可以讓您真正清理代碼。
如果您想了解更多信息,請點擊此鏈接指向泛型的Java Tutorial。
我在尋找矢量,因爲它是我正在閱讀的java書中的一章......但爲了知識的緣故,在矢量上使用ArrayList的意思是什麼?我知道在多線程場景中,Vector比ArrayList更受歡迎! – ueg1990
什麼編程語言?用盡可能多的相關信息來標記問題非常重要。有問題的語言應該幾乎總是第一個標籤。此外,反引號(')允許您將代碼突出顯示爲代碼,這更易於閱讀。 – KRyan
對不起,我的不好....語言是java。 – ueg1990