當前位置:首頁 » 服務存儲 » 泛型集合中能存儲多種元素嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

泛型集合中能存儲多種元素嗎

發布時間: 2022-03-05 20:16:37

⑴ java中的list map set中能存放不同數據類型的元素嗎

相當可以,list裡面實際上存放的是Object類型,所以隨便放,就算你加了泛型的限定了,你也可以往裡放,通過反射,想放什麼放什麼,集合中的泛型是給編譯器看的,過了編譯階段,泛型就不存在了,所以裡面的還是接受object類型.如果你放基本數據類型,比如int 會被包裝成Integer 不過一樣,有自動拆箱裝箱.

⑵ 泛型可以保存兩種數據類型嗎

不能!

⑶ 一般情況下,集合中為什麼要使用泛型不使用泛型的情況下,集合中的元素是什麼類型

你這是兩個問題:
1、使用泛型的好處
1)類型安全。泛型的主要目的就是提高Java程序的類型安全。通過知道使用泛型定義的變數的類型限制,編譯器可以在一個高得多的程度上驗證類型假設。沒有泛型,這些假設只能我們自己記或者代碼注釋;
2)消除強制類型轉換。泛型一個附帶好處是,消除代碼中許多強制類型的轉換。減少代碼出錯率,更好閱讀;
3)潛在的性能收益。可以帶來更好的優化可能。在泛型的初始實現中,編譯器強制類型轉換(沒有泛型的話,程序員會指定這些強制類型轉換,)插入生成的位元組碼中。但是更多類型信息可用於編譯器這一事實,為以後的JVM可以帶來更好的優化。由於泛型的實現方式,支持泛型幾乎不需要JVM或類文件更改,所有工作都在編譯器中完成,編譯器生成的類沒有泛型(和強制類型轉換),只是來確保數據類型安全;
2、沒有使用泛型的時候元素的類型
由於你的題目中國沒有指定語言,特別說明:對於java和C#來說沒有明確類型的對象都是Object。

⑷ java 集合中泛型通配符 用了之後就不能添加 元素了 為什麼

首先泛型是用來約束的(或者說是規范化),泛型的本質是參數化類型,不是用來通配的(這個說法也不完全對),這個概念一定不要混淆了。

你添加的元素是String類型的,那麼你的代碼就得這樣:

ArrayList<String>arr=newArrayList<String>();

或者:

List<String>arr=newArrayList<String>();//多態,推薦使用

再或者:

Listarr=newArrayList();
ArrayListarr=newArrList();//這兩種沒有用泛型,編譯器會提示警告

用上面1和2方式的話,你的arr集合就只能存放String類型對象,3沒有用泛型,什麼類型的對象都可以存放。只是取出來的時候,會要類型轉換,這個過程很容易出錯。

希望我的回答能對你有所幫助,榮幸之至。

⑸ 如果用一個集合中儲存不同的類型,如何使用泛型

例如:
List<object> p
定義則可,然後使用p.add()方法即可儲存不用類型變數,使用時根據需要進行轉換就好,如:
(int)p[i],(float)p[i],(class)p[i]等等

⑹ 在泛型list<>中存了一系列的值,怎樣在取出的時候轉換類型

list.Cast<T>()

⑺ java list 集合里可以存放list集合 嗎就是兩重 List

對於從原始collection繼承來的集合類,包括Map,List,Set,Table等是可以進行相互嵌套的,所以List中的嵌套可以達到5層以上,超過5層效率開銷就不好了。

⑻ java集合中 能添加不同類型的元素嗎

可以,因為所有類都是Object的子類。但是這不是好的實踐。如果你需要容納不同類型的元素,應當寫一個類,而不是用集合。

⑼ java中list集合存儲了object元素,根據泛型進行分組

for(Object object : list) {
String str = object.toString();
if (StringUtils.isNumeric(str )) {
// 是數字
} else {
// 不是數字
}
}