java - 动态调用现有变量

标签 java dynamic

我有一个 java 程序,它使用多个 HashMap,一个对应于在假设的餐厅中制作的订单的每个“类别”。

我需要进行一些处理并将文本输出到文件。然而,我走了“糟糕”的路,简单地编写了六次代码,每次都调用不同的 HashMap 。

我无法留下确切的演示代码,因为这将作为一个项目提供,因此可能会被随机抄袭发现者发现,并被错误地标记为抄袭,因为它是一大块代码。但是,以下内容应该可以说明问题。

DoSomething(These);
DoSomething(All);
DoSomething(Have);
DoSomething(Completely);
DoSomething(Different);
DoSomething(Names);

现在,想象一下有 20 行代码,而不是“DoSomething”,并且对于每 20 行,我使用一个特定的 HashMap。

我无法准确地填充数组并使其使用数组中的数据,因为它会尝试使用字符串而不是 HashMap(调用 DoSomething("These") 而不是 DoSomething(These))。

是否有任何方法可以动态调用 HashMap,以便我可以将所有这些缩短为一个循环,为每个 HashMap 执行相同的操作?

最佳答案

如果您有几个 HashMap ,可以说:

HashMap<String, String> aMap;
HashMap<String, String> anotherMap;

然后您可以用这些填充新的 ArrayList,如下所示:

List<HashMap<String, String>> myMaps = new ArrayList<>();
myMaps.add(aMap);
myMaps.add(anotherMap);

这样,您就可以使用增强的 for 循环来迭代 map :

for (HashMap map : myMaps) {
    //code goes here
}

这里的一个好处是您的列表是动态调整大小的,因此您可以根据需要在其中添加和删除 HashMap 。

关于java - 动态调用现有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21243857/

相关文章:

c - 如何将元素移动到 c 中动态分配的 char ** 指针的右侧?我在正确的轨道上吗?

java - OCR Tesseract 没有通过 super.OnCreate() 调用,尽管它是

java - 如何将 jndi 查找从 xml 转换为 java 配置

javascript - 使用 jQuery,如何将信息存储在动态创建的 div 中?

java - 动态添加子项到 GridLayout

c - 创建数组的动态声明

c# - 在c#中动态地将参数注入(inject)到函数调用中

java - Hibernate 的简单对象层次结构

java - 如何在 Windows 上用 Java 读/写串口?

java - 如何停止 EJBException 的堆栈跟踪(在每个抛出的异常中)