我有一个 Java HashMap 类型<MyType,Double>
。该类MyType
有两个字段foo
(String 类型)和bar
(Double 类型)。equals 和 hashcode 方法仅供MyType
使用foo
。现在给定一个A
类型的对象,MyType
我需要从 Hashmap 中获取匹配的条目。这意味着什么
MyType A = new MyType();
A.foo = "foo";
A.bar = 0.0;
MyType B = new MyType();
B.foo = "foo";
B.bar = 1.0;
Map<MyType,Double> myMap = new HashMap<MyType,Double>();
myMap.put(B,5.0)
我需要根据它与(因为它们的值相同)的相等性(即形式的函数)从中提取键B
(最终是它的 bar 值)myMap
A
foo
Double getBar(MyType type, Map<MyType,Double> map)
这样
getBar(A,myMap) returns 1.0
最好的方法是什么?我不太确定这个东西最初是如何设计的,但我正在寻找一种有效的方法来做到这一点,因为myMap
预计它会非常庞大。
更新:这里有一个稍微大一点的上下文。我有一组 MyType 对象(比如 S)。一个外部函数在它上面工作并创建一个名为 myMap 的 HashMap,它计算 Double 类型的数量并将其与集合中的每个对象相关联。它还更新集合中每个对象的 bar 字段。我得到的是myMap。现在我需要更新原始集合 S 中的每个元素,以便将每个元素的 bar 值替换为返回的 myMap 中相应条目的 bar 值。所以对于SI中的每一个A都需要读取myMap中对应的B,得到它的bar,然后设置A的bar和B的bar相同。