java - 有什么简单的 Java 方法可以将 hashmap 的一部分传递给另一个 hashmap?

标签 java hashmap wrapper

对于我的交易程序,一个 Merchant 对象有一个 qualities HashMap,它由具有 boolean 值的枚举 Qualities 组成。

public class Merchants {
   private Map<Qualities, Boolean> qualities = new HashMap<Qualities, Boolean>();

我想给每个 Merchant 对象一个进一步的 ratedQualities HashMap,其中包含代表这些品质评级的字节或整数值的真实品质。

例如,给定商家的真实股票经纪质量可能会获得“1”评级。

问题是 Java 不允许我轻松地做到这一点。以下代码展示了我的意图,但无法编译:

private Map<qualities-TRUE, Byte> ratedQualities = new HashMap<qualities-TRUE, Byte>();

根据这个link text一种解决方案是为 HashMap 创建一个 Wrapper。这是唯一的解决方案还是有更好的方法?

预先感谢您的帮助。

最佳答案

下面是使用 Thomas Lötzer 和其他人所支持的想法的 Merchant 实现。

class Merchant
{
    Map<Quality, Integer> ratings = new HashMap<Quality, Integer>();

    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 - 有什么简单的 Java 方法可以将 hashmap 的一部分传递给另一个 hashmap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2665780/

相关文章:

java - 将 JAR 放入 JVM 库与项目库有什么区别?

java - 如何显示按最喜欢的评论过滤的回收者 View 项目?

php - 无法让 SFTP 在 PHP 中工作

wrapper - JSLint4Java 用法

java - 将人物对象添加到二维网格

java - InputStream 无法处理 2016 字节

java - 通过基于索引检索 Hashmap 元素

c# - C++/CLI clr :safe for C# COM Interop 中的包装器 C++

java - 为什么 HashMap get() 方法在修改插入的对象后返回 null?

Java HashMap 键值存储与检索