使用散列图迭代一个哈希映射列表

时间:2013-04-30 17:21:44

标签: java hashmap iteration

我正在使用散列图为每个aclLine已处理的

添加类似的值
for (String aclLine : refinedFileContents){
 if(Some condition)
 {
   staticVariablesMap.put("lineNumber", **lineNumber**); 
   staticVariablesMap.put("**srcHostName**", batchBean.getSourceIpAddress());
   staticVariablesMap.put("batchBean", batchBean);
}
} 

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

2 个答案:

答案 0 :(得分: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>();

或者您是否有理由需要这些“并行”地图条目?

答案 1 :(得分:0)

我没有完全像你将值放在一个哈希映射中那样得到你的问题。你想迭代哈希映射 您可以像这样迭代哈希映射。

Iterator<Entry<String, Object>> it = hashMap.entrySet().iterator();
while (it.hasNext())
{
    Map.Entry<String, Object> entry = (Map.Entry<String, Object>)it.next();
}