查找数组中的任何重复元素

时间:2013-12-07 01:16:28

标签: java arrays search

我正在尝试查找数组中重复的元素。程序旨在吸引用户输入。

以下是代码:

   package sortingattempt;

import java.util.Scanner;

public class ArraySimilar {

    public static void main(String args[]){
        int[] a = new int[100];
        int[] b = new int[5];
        int Duplicate = 0;

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter size of array");
        int size = sc.nextInt();

        //Scanner elem = new Scanner(System.in);
        System.out.println("Input elements in array" +size);
        for(int j = 0;j<size;j++){
            a[j] = sc.nextInt();
        }
        System.out.println(a.length);
        System.out.println("a[]" + a.toString());

    for (int i = 0; i < a.length;i++){
        b[0] = a[i];
        if (b[0] == a[i+1]){
            Duplicate = b[0];
            System.out.println(Duplicate);
        }
        i++;
        }
        System.out.println("No common variable");

    }

}

当我尝试运行它时,它正常运行直到我要求用户输入的行。输入输入后没有任何事情发生。请在程序中注明错误。谢谢。

2 个答案:

答案 0 :(得分:1)

我认为发生的事情是你没有被提示输入一个System.out.println("Enter a number: ");的号码所以你认为该程序不起作用,真的只是等着你继续输入号码。您可能希望在每次迭代时提示System.out.println()

System.out.println("Input elements in array" +size);
for(int j = 0;j<size;j++){
    System.out.println("Enter a number: ");
    a[j] = sc.nextInt();
}

此外,您手动初始化阵列。您是否应该等待用户输入大小,然后初始化它们?

int[] a; 
int[] b;

Scanner sc = new Scanner(System.in);
System.out.println("Enter size of array");
int size = sc.nextInt();

a = new int[size];
b = new int[size];

另外,尝试打印a.toString()不会提供所需的输出。你必须遍历它或做这样的事情

System.out.println("a[] " + Arrays.asList(a));

编辑:比较

你应该在第一个循环中使值等于

for(int j = 0;j<size;j++){
    System.out.println("Enter a number: ");
    a[j] = sc.nextInt();
    b[j] = a[i];
}

然后在底部循环中,在嵌套循环中进行比较

int dupCount = 0;
for (int i = 0; i < size; i++){
    for (int j = 0; j < size; j++){
        if (b[i] == a[j]){
            Duplicate = a[j];
            System.out.println(Duplicate);
            dupCount = 0;
        }
    }
}
if (dupCount == 0)
    System.out.println("No common variable");

答案 1 :(得分:0)

另一个错误是您需要从此代码块中删除i ++

   Duplicate = b[0];
        System.out.println(Duplicate);
    }
    i++;  //delete that
    }

同样改变

  System.out.println("Input elements in array" +size);
for(int j = 0;j<size;j++){
    a[j] = sc.nextInt();
}
System.out.println(a.length);
System.out.println("a[]" + a.toString());//change that to a[j] and put it inside the loop. 

我在这里假设您要打印数组的元素,因此a.toString不会这样做。