查找整数数组中的重复值

时间:2015-10-21 13:51:25

标签: java arrays for-loop

我是Java的初学者并且最近从C切换到Java,我使这个程序搜索重复的值,但每次运行程序时我都得到输出:"找到重复的值"

我的代码:

public class Duplicate {

  public static void main(String[] args) {
    boolean found;
    int[] nums = { 184, 254, 123, 654, 146, 392 };
    int x, i;
    for (i = 0; i < 6; i++) {
      for (x = 1; x < 5; x++) {
        if (x != i && nums[x] == nums[i])
          found = true;
      }
    }
    if (found = true)
      System.out.println("Duplicate value found ");
    else
      System.out.println("Duplicate value not found ");
  }

}

此处没有重复值,但它将输出显示为

  

发现重复值

这不是这种情况。你可以在这段代码中指出我的错误吗?

4 个答案:

答案 0 :(得分:1)

if(found = true)表示您将true指定给找到的变量,它将始终返回true。这就是它始终打印找到的重复值的原因。 将其更改为if(found == true)

答案 1 :(得分:0)

我认为您在开始时忘记了found = false。您在第二个if中使用 = 而不是 ==

答案 2 :(得分:0)

@Kotshi 我试过这个

public class Duplicate {
    public static void main(String[] args) {
        boolean found = false;
        int[] nums = { 184, 254, 123, 654, 184, 392 };
        int x, i;
        for (i = 0; i < 6; i++) {
            for (x = 1; x < 5; x++) {
                if (x != i && nums[x] == nums[i])
                    found = true;
            }
        }
        if (found == true)
            System.out.println("Duplicate value found ");
        else
            System.out.println("Duplicate value not found ");
    }
}
先生,谢谢你! :D它有效。

答案 3 :(得分:0)

我不知道你想要实现什么,但也许不使用数组你可以使用Set或Map? Set不允许任何重复值,Map不允许重复键。