对于我的交易程序,一个 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/