[英]Generic HashMap
我有一種方法, check
其中有兩個哈希圖作為參數。 這些映射的鍵是String
,值是String
或Arraylist
。
哪個是更好的解決方案:
public static boolean check(HashMap<String, ?> map1, HashMap<String, ?> map2) {
for ( entry <String, ? > entry : map1.entryset()) {
...
}
}
要么
public static <V> boolean check(HashMap<String, V> map1, HashMap<String, V> map2) {
for ( entry <String, V > entry : map1.entryset()) {
...
}
}
為什么呢?
您還可以給我更多有關這兩種解決方案之間區別的信息嗎?
首先,? 可以。 一個可能是<String, String>
,另一個可能是<String, Double>
。 在第二個選項中,它們必須相同。
現在,只要您能夠轉換它們,以便它們具有可比性,則可以接受第一個。 例如,您可以對兩個值都使用.toString()
進行比較。 但就我個人而言,我更喜歡第二種方法,因為它可以讓我對正在發生的事情有更多的控制權,並且可以讓我進行類型檢查。
第二個強制在編譯時強制將兩個映射參數化為彼此相同。 它還允許您對映射進行一些有用的操作,例如將非null
元素插入到映射中(通配符無法實現)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.