一千萬個為什麽

搜索

任何簡單的Java方法將hashmap的一部分傳遞給另一個hashmap?

對於我的交易程序,Merchant對象具有使用布爾值枚舉的Qualities的HashMap質量。

public class Merchants {
   private Map qualities = new HashMap();

我想給每個Merchant對象一個真實質量的進一步ratingQualities HashMap,用Byte或Integer值表示這些質量的等級。

例如,給定的商家可能具有與其真實股票經紀質量相關聯的“1”評級。

問題是Java不允許我輕易做到這一點。以下代碼演示了我的意圖但不編譯:

private Map ratedQualities = new HashMap();

根據這個鏈接文字一個解決方案是為HashMap的品質創建一個包裝器。這是唯一的解決方案還是有更好的方法?

在此先感謝您的幫助。

最佳答案

這是使用ThomasLötzer和其他人所支持的想法實現Merchant。

class Merchant
{
    Map ratings = new HashMap();

    boolean hasQuality(Quality quality)
    {
        return ratings.containsKey(quality);
    }

    int getRatingOfQuality(Quality quality)
    {
        Integer rating = ratings.get(quality);
        return (rating != null) ? rating : 0;
    }

    void setRatingOfQuality(Quality quality, int rating)
    {
        ratings.put(quality, rating);
    }
}

轉載註明原文: 任何簡單的Java方法將hashmap的一部分傳遞給另一個hashmap?