cod*_*ody 3 java methods android object 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));
Run Code Online (Sandbox Code Playgroud)
现在我需要创建一个方法来检索hashmap中的每个对象并从每个对象调用一个方法.这是可能的,还是只能直接引用创建的对象.如果是这样,是否有另一种方法可以动态调用类的所有现有实例的方法(换句话说,在用户输入上)?
Chr*_*ung 10
当然.你可以这样做:
for (Object thing : unitMap.values()) {
// use "thing" here
}
Run Code Online (Sandbox Code Playgroud)
如果你也需要钥匙,你可以只获得钥匙:
for (String key : unitMap.keySet()) {
// use "key" here
}
Run Code Online (Sandbox Code Playgroud)
或者键和值一起:
for (Map.Entry<String, Object> entry : unitMap.entrySet()) {
// use "entry.getKey()" and "entry.getValue()"
}
Run Code Online (Sandbox Code Playgroud)
在所有上述情况中,地图中的每个条目都是逐个遍历的.因此,在循环结束时,您将处理地图中的所有条目.