检查随机数组中的重复数字

时间:2017-04-19 14:33:34

标签: java arrays random

我有一个充满随机数的数组。我想检查数组中是否有重复的数字但是我遇到了问题。这就是我到目前为止所做的:

Random randomNum=new Random();        
int[] array = new int[100];
for(int i = 0; i <  array.length; i++) {
    array[i] = randomNum.nextInt(100); //0-99
    System.out.print(array[i] + "  ");
}

for(int index = 0; index < array.length; index++) {
    if(array[index] == array[index+1])
    System.out.println("Match in"+array[index]);
}

2 个答案:

答案 0 :(得分:3)

您的代码失败了,因为您尝试访问数组中的最后一个元素:最后一个是array[array.length - 1],但您在调用array[array.length]并且您的索引已经是array[index+1]时尝试array.length - 1 + 1 array.length 1}} = Random randomNum=new Random(); int[] array = new int[100]; for(int i = 0; i < array.length; i++) { array[i] = randomNum.nextInt(100); //0-99 System.out.print(array[i] + " "); } for(int index = 0; index < array.length - 1; index++) { if(array[index] == array[index+1]) { System.out.println("Match in "+array[index]); } } 。要修复它,只需转到prelast元素。

Random randomNum=new Random();        
 int[] array = new int[100];
 for(int i = 0; i <  array.length; i++) {
    array[i] = randomNum.nextInt(100); //0-99
    System.out.print(array[i] + "  ");
 }

for(int i = 0; i < array.length; i++)
{
  for(int j = i+1; j < array.length; j++) {
    if(array[i] == array[j]) {
      System.out.println("Match in "+array[i]);
    }
  }
}

但是,我认为这段代码不会解决您的问题,因为它只能找到邻居的共同体。如果你需要所有的dublicates,你需要双循环:

For each value in df['ticker']:
    If df['ticker'] is in [ticker_list]:
        df['target'] = 1
    Else:
        df['target'] = 0

答案 1 :(得分:3)

您可以使用HashSet查找重复值,因为它不接受重复值。

    Random randomNum = new Random();
    int[] array = new int[100];
    for (int i = 0; i < array.length; i++) {
        array[i] = randomNum.nextInt(100); // 0-99
        System.out.print(array[i] + "  ");
    }
    Set<Integer> rnd = new HashSet<Integer>();
    for (int i : array) {
        if (!rnd.add(i)) {
            System.out.println(i + " is a duplicate");
        }
    }