如何检查重复值?

时间:2016-07-04 18:56:18

标签: java arrays arraylist data-structures probability

我需要编写一个解决方案来检查每次迭代中的重复值(如生日)并返回其中包含重复值的迭代次数。如果找到一个重复,您可以停止当前迭代并启动下一个。

应该改变我的解决方案。应如何编写解决方案以解决此重复问题。

padding

1 个答案:

答案 0 :(得分:0)

我会使用HashSet。这将允许持续访问以查看您是否已访问当前号码。如果已经访问过,则可以中断并增加计数,否则将其添加到哈希集并继续。

以下是您重写的代码,效率更高。

static int runSim(int thePeople, int theCount) {

int count = 0;
// Runs the Sim by Count
for(int i = 1; i <= theCount; i++) {
    Hash<Integer> setOfGenNums = new HashSet<Integer>();
    Random rand = new Random();
    rand.setSeed(i);

    for (int j = 0; j < thePeople; j++) {
        int genN = rand.nextInt(365);
        if(setOfGenNums.contains(genN)){
            count++; break;
        }

        listOfGenNums.add(genN);

    } // End People Loop
} //End Count Loop
return count;
}