java - 检测数组中的重复项

标签 java arrays

对此相当陌生,我已经用尽了无数次尝试来找出为什么这不起作用但无法得到它。

private int indexOf(int searchingNum)
{
    int x = searchingNum;
    for (int i = 0; i<numberArray.length; i++){
        if (numberArray[i]==x)
            index = i;
        else
            index = -1;
    }
    return index;
}

public boolean addNumber(int numberToAdd)
{
    int x = numberToAdd;
    if (indexOf(x)!=-1)
        return false;
    if (count<numberArray.length&&indexOf(x)==-1){
        count++;
        numberArray[count-1] = x;
        return true;
    }

    if  (count>=numberArray.length&&indexOf(x)==-1){
        count++;
        newArray = Arrays.copyOf(numberArray, 2* numberArray.length);
        numberArray = newArray;
        numberArray[count-1] = x;
    }
    return true;    
}

该方法不应允许重复,但确实允许。任何正确方向的指示将不胜感激。

谢谢。

最佳答案

您的 indexOf 不正确:由于您在找到匹配项后继续循环,因此除非数组中的最后一项恰好匹配,否则您的代码将返回 -1

要解决此问题,请从循环内部返回 i:

for (int i = 0 ; i < numberArray.length ; i++) {
    if (numberArray[i]==x)
        return i;
}
// If we are here, we did not find anything; return -1
return -1;

关于java - 检测数组中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42320321/

相关文章:

java.lang.VerifyError : (class: org/apache/jasper/compiler/JspUtil, 方法:<clinit> 签名:()V) 函数参数不兼容

java - 刷新 JLabel - Java

ruby-on-rails - Ruby 中 For 和 Map 的区别

java - Groovy 用可能的字符串分割字符串

php - 检查关联数组是否为空

java - 任意顺序的正则表达式匹配

java - NonUniqueObjectException session 不包含对象本身?

java - while 循环内变量变化

php - 使用 PDO 通过单个查询插入多行

java - 解决难题,数组编程,java