计算Java中两个数组中匹配元素的数量以及如何生成超过100个数组

时间:2013-11-13 22:04:23

标签: java arrays eclipse

如何找到一种方法使我的代码计算两个相同大小(相同值,相同位置)的数组中匹配元素的数量。例如,如果array1有5,4,3,2,1和array2有1,2,3,4,5,则有一个匹配元素,3。如何让我的代码执行这个看似简单的任务?它会告诉我有多少说我有1匹配3匹配或任何其他数字?就像我希望它计算匹配的数量并给我一个数字。

这是我的两个生成100个数字的数组。我还希望他们生成10,000,000个数字,我不知道该怎么做?他们正在产生100但我希望它是10,000,000如何?

对于这段代码:

        if (store[t] ==store[w])
        {
            maching = maching +1;
            System.out.println("Generated: " + maching);
        }

    }
   //return maching;
}

它应该计算匹配的数量并给我匹配的金额。但它正在做的是它给了我:就像三个匹配它给了我这个:生成:1,生成1,生成1,而不是只给我一个3.我还评论了返回匹配,因为它给了我错误,所以我评论出来。也许如果我得到返回匹配工作会解决整个问题吗?我不确定是什么导致了这个问题?谢谢。

我想要计算两个数组之间匹配的数量。因此,当我在这两个数组之间匹配6个数字时,它应该说我有6匹配。

Random randomGenerator = new Random();

for (int t = 0; t < 100; ++t)
{
    int randomNumber = randomGenerator.nextInt(100);
    store[t] = randomNumber;
}

int matching =0;
for ( int w = 0; w< 100; ++w)
{
    int randomNumber = randomGenerator.nextInt(100);
    count[w] = randomNumber;
    int t =0;

    if (store[t] ==count[w])
    {
        matching = matching +1;
        System.out.println("Generated: " + maching);
    } 
}


System.out.println("Done.");
}

1 个答案:

答案 0 :(得分:0)

for ( int w = 0; w< 100; ++w)
{
    int randomNumber = randomGenerator.nextInt(100);
    int t =0;
    int maching =0;
    if (store[t] ==store[w])
    {
        maching = maching +1;
        System.out.println("Generated: " + maching);
    } 
}
  • 此处您只有一个数组store[],并且您的(另一个)for循环中已分配了元素(使用t

  • 在上面的代码中,您设置了t=0,并比较store[t] and store[w],所以您所做的是:比较store[0] with store[0],store[1]..store[99]我认为这不是您想要的。

  • 如果您不想分配第二个数组,我认为您至少应该比较store[w] with randomNumber instead of store[t]