Java:使用hashmap,检索所有值并调用方法

我需要以一种方式存储动态创建的对象列表,在这种方式中可以检索所有对象并按需调用它们的方法.

我可以看到列表和创建,HashMap符合我的需求,但我有点困惑回忆对象并使用HashMap调用他们的方法.

作为参考,让我给你一些代码:

这是HashMap:

Map<String, Object> unitMap = new HashMap<String, Object>();

// here is how I put an object in the Map notice i'm passing coordinates to the constructor:
unitMap.put("1", new Worker(240, 240));
unitMap.put("2", new Worker(240, 240));

现在我需要创建一个方法来检索hashmap中的每个对象并从每个对象调用一个方法.这是可能的,还是只能直接引用创建的对象.如果是这样,是否有另一种方法可以动态调用类的所有现有实例的方法(换句话说,在用户输入上)?

最佳答案
当然.你可以这样做:

for (Object thing : unitMap.values()) {
    // use "thing" here
}

如果你也需要钥匙,你可以只获得钥匙:

for (String key : unitMap.keySet()) {
    // use "key" here
}

或者键和值一起:

for (Map.Entry<String, Object> entry : unitMap.entrySet()) {
    // use "entry.getKey()" and "entry.getValue()"
}

在所有上述情况中,地图中的每个条目都是逐个遍历的.因此,在循环结束时,您将处理地图中的所有条目.

转载注明原文:Java:使用hashmap,检索所有值并调用方法 - 代码日志