我有一个充满随机数的数组。我想检查数组中是否有重复的数字但是我遇到了问题。这就是我到目前为止所做的:
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]);
}
答案 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");
}
}