Java:使用 HashMap ,检索所有值和调用方法

标签 java android object methods 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
}

如果你也需要 key ,你可以只拿 key :

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

或者键和值一起:

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

以上所有情况,map中的每一个entry都是一个一个遍历。所以在循环结束时,您将处理完 map 中的所有条目。

关于Java:使用 HashMap ,检索所有值和调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6366278/

相关文章:

android - 运行 sdkmanager --licences 时出现 "Could not find or load main class java.se.ee"

php - 保护 php api 以在 android 应用程序中使用

javascript - 使用递归搜索对对象中的数组进行排序

javascript - 将嵌套键设置为 False

java - 如何将以下递归函数转换为 for 循环迭代

java - Raycaster 不支持 OpenCL

java - 我在 Struts 2 中有一个 NullPointerException 报告

java - 在媒体服务器上录制时使用图像作为视频流

android - Google Play 控制台显示 Release not live

c++ - 你能做一个 C++ 泛型函数吗?