【发布时间】:2014-08-16 11:05:20
【问题描述】:
我想我在重写部分代码以使其更易于维护时误解了 HashMap 的应用。
joints 是一个 HashMap,其中包含一组由 String 标识的对象:
private HashMap<String, SomeObject> joints = new HashMap(5, 1);
通过put() 方法填充HashMap 非常简单。但是我现在需要对它们中的每一个运行一个方法。下面的代码在第一阶段产生语法错误,但我相信它说明了我正在尝试做的事情。
joints.("knee").someMethod(someValue);
joints.("hip").someMethod(someOtherValue);
joints.("shoulder").someMethod(someOtherValue);
joints.("neck").someMethod(someOtherValue);
joints.("elbow").someMethod(someOtherValue);
什么是有效/正确的等价物?上述的?我在想 get() 对象,从地图中删除它,修改对象,将它放回 HashMap。
虽然 foreach 会更接近一步,但这是一种没有实际意义的方法,因为 someMethod() 的争论因每个对象而异。
【问题讨论】:
-
@DavidPostill 不是我能看到的。第二个问题是相关的,但第一个不是重复的,因为这更多是关于语法的问题
-
阅读手册。 docs.oracle.com/javase/7/docs/api/java/util/HashMap.htmlHINT:方法名为
.get(Object) -
@Unihedron 我的结论是它不是那个,因为我认为它会修改对象的副本,而不是 HashMap 中的对象,但它的工作方式与我的直觉相反