1

我正在使用哈希图为每个已aclLine处理的值添加相似的值

for (String aclLine : refinedFileContents){
 if(Some condition)
 {
   staticVariablesMap.put("lineNumber", **lineNumber**); 
   staticVariablesMap.put("**srcHostName**", batchBean.getSourceIpAddress());
   staticVariablesMap.put("batchBean", batchBean);
}
} 

稍后我想为每一行迭代这些哈希图,并执行一些特定于给定键、值对的操作(例如,获取srcHostNamefor that lineNumber)并使用它来处理后续步骤。如何为哈希图中的每个srcHostName条目迭代这些收集的哈希图?我应该使用 ArrayList/List 来存储哈希图的每个实例吗?这可行吗?

4

2 回答 2

2

在我看来,您应该将哈希图中的属性组合成一个对象。然后你可以只使用一个哈希映射。

public class AclLine {
    private long lineNumber;
    private String srcHostName;
    private Object batchBean; 
}

Map<AclLine> lines = new HashMap<AclLine>();
// Or maybe a List?
List<AclLine> lines = new ArrayList<AclLine>();

或者是否有理由需要这些“并行”映射条目?

于 2013-04-30T17:25:51.483 回答
0

我没有完全得到您的问题,就像您只将值放入一个哈希映射中并且您想迭代哈希映射您可以像这样迭代哈希映射。

Iterator<Entry<String, Object>> it = hashMap.entrySet().iterator();
while (it.hasNext())
{
    Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
}
于 2015-08-06T10:39:36.263 回答