Thread中运行时的Hashmap比较问题

时间:2012-10-15 07:47:49

标签: java multithreading hashmap

我在一个hashmap上有两个hashmap。我循环遍历数据并在循环中比较其他hashmap数据。如果我使用其他hashmap进行比较,我将面临数据一致性的问题。请查看以下示例:

Hashmap1 =>
writeAndClientId = {AC001=java.io.PrintWriter@1a16869, VV001=java.io.PrintWriter@1f33675}

Hashmap2 =>
bidaskMapMulti =  {VV001-22=22, AC001-11536=11536,PR001-2564=2564, SP001-1541=1541}

Hashmap3 =>
secMapMulti =   {AC001-76091=76091, PR001-1838=1838, VV001-51430=51430}

example1 =>在条件的基础上比较两个Hashmaps并使用continue关键字跳过for循环中的其余语句,在这个例子中缺少很多数据,这是有问题的

for(Map.Entry<String,PrintWriter> entry : writeAndClientId.entrySet())
{
    pw_eq1 = entry.getValue();
    eq_client_id1 = entry.getKey();

    //System.out.println("bidaskMapMulti in nse eq :: "+bidaskMapMulti);

    if(!bidaskMapMulti.containsKey(eq_client_id1+"-"+split_str_data_nse_eq[0]))
    {
        pw_eq1.println(data1);
        continue;
    }
    if(secMapMulti.containsKey(eq_client_id1+"-"+split_str_data_nse_eq[0]))
    {
        pw_eq1.println(data);
        continue;                   
    }
}

example2 =&gt;根据条件比较一个Hashmap并打印数据工作正常,没有任何继续关键字和数据是否符合要求。

for(Map.Entry<String,PrintWriter> entry : writeAndClientId.entrySet())
{
    pw_eq1 = entry.getValue();
    eq_client_id1 = entry.getKey();

    if(secMapMulti.containsKey(eq_client_id1+"-"+split_str_data_bse_eq[0]))
    {
        pw_eq1.println(data);
    }
}       

请检查并说明第一个示例有什么问题。我错过了什么吗?

谢谢&amp;问候 Praveen T

0 个答案:

没有答案