簡體   English   中英

通用HashMap

[英]Generic HashMap

我有一種方法, check其中有兩個哈希圖作為參數。 這些映射的鍵是String ,值是StringArraylist

哪個是更好的解決方案:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM