Wie kann man ein Array mit einmaligen Werten initialisieren, bzw. wie kann man prüfen ob in einem Array ein bestimmter Wert enthalten ist?

In main() wird die Methode initialize() aufgerufen und ihr ein vorher deklariertes Array als Parameter übergeben.

In der Methode initialize() wird das übergebene Array in einer while-Schleife durchlaufen. Ihre Zählvariable wurde vorher deklariert und mit 0 initialisiert. Eine weitere Variable num, die außerhalb der Schleife lediglich deklariert wurde, wird als erstes in der Schleife mit einem Zufallswert initialisiert. In einer weiteren, inneren Schleife wird das Array bis zum aktuell zu belegenden Index durchlaufen. Hierbei wird der bisherige Inhalt des Arrays mit der Zufallszahl verglichen. Wird ein identischer Wert gefunden, so wird eine boolsche Hilfsvariable auf true gesetzt und die innere Schleife abgebrochen. Die äußere Schleife wird nun fortgesetzt und die Hilfsvariable überprüft. Ist sie false, so kann die Zufallszahl am aktuellen Index gespeichert und der Index selbst inkrementiert werden. Ist sie true, so wird die äußere Schleife mit dem selben Index nochmals durchlaufen.

import java.util.Arrays;
import java.util.Random;

public class SingleValuesArray {

    public static void main(String[] args) {
        int[] arr = new int[10];
        System.out.println(Arrays.toString(initialize(arr)));
    }

    private static int[] initialize(int[] arr) {
        int num, i = 0;
        boolean exists;
        while (i < arr.length) {
            num = new Random().nextInt(10);
            exists = false;
            for (int j = 0; j < i; j++) {
                if (num == arr[j]) {
                    exists = true;
                    break;
                }
            }
            if (!exists) {
                arr[i] = num;
                ++i;
            }
        }
        return arr;
    }
}