即使重复多次,如何只打印一次不同的整数值

How to print only distinct integer values once even though they are repeated multiple times

我试图只打印一次不同的整数值,即使它们在数组中以引入的顺序重复多次。首先,我需要从用户那里获取数组大小,但我无法确定如何初始化 variable.Can 我使用 n -inclueded in the code- 作为数组大小变量?当我编译时,我不打印任何东西。我的错误在哪里,如何处理?有什么想法吗?

public static void uniqueNumbers(int arr[], int n)
    {
        for (int i=0; i<n; i++)
        {
            for (int j =0; j<i;j++)
            {
                if (arr [i]==arr[j])
                    break;
            
            if (i==j)
                System.out.print(arr[i] + " ");
                
        }
    }
}

public static void main(String[] args) {
    Scanner sc =new Scanner(System.in);
    int n =sc.nextInt();
    int arr [] = new int [n];
    uniqueNumbers(arr,n);

}

}

public static void uniqueNumbers(int[] arr, int n) {
        int slow = 1;
        for (int fast = 1; fast < n; fast++) {
            if (arr[fast] != arr[slow - 1]) {
                arr[slow++] = arr[fast];
            }
        }
        arr = Arrays.copyOf(arr, slow);
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

需要对数组进行填充,即需要对数组元素取入

public static void main(String[] args) {
Scanner sc =new Scanner(System.in);
int n =sc.nextInt();
int arr [] = new int [n];
 //Add the following lines.
for (int i = 0; i < n; i++) {
    arr[i] = sc.nextInt();
}
uniqueNumbers(arr,n);
}

打印数组并再次尝试您的逻辑。

需要先请求数组大小如下:


  public static void main (String[] args)
    {
        Scanner scan = new Scanner(System.in);

        System.out.println("Enter array size");

        int n =scan.nextInt();

        // declaring and creating array objects
        int[] arr = new int[n];

        // displaying default values
        System.out.println("Default values of array:");
        for (int i=0; i < arr.length; i++) {
            System.out.print(arr[i]+"\t");
        }

        // initializing array
        System.out.println("\n\n***Initializing Array***");
        System.out.println("Enter "+ arr.length
                + " integer values:");

        for(int i=0; i < arr.length; i++) {
            // read input
            arr[i] = scan.nextInt();
        }


        uniqueNumbers(arr, n);

    }