我有一个 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/