Дубликаты в отсортированном массиве Java

Я должен написать метод, который принимает массив целых чисел, который уже отсортирован в числовом порядке, затем удаляет все дублирующиеся числа и возвращает массив только тех чисел, которые не имеют дубликатов. Затем этот массив должен быть распечатан, чтобы я могне может быть никаких исключений нулевого указателя. Метод должен быть за O (n) раз, можетt использовать векторы или хэши. Это то, что я до сих пор, но он имеет только первые пары номеров в порядке без дубликатов, а затем просто помещает дубликаты в конец массива. Я могу'создать временный массив, потому что он дает мне исключения нулевого указателя.

public static int[] noDups(int[] myArray) {
    int j = 0;
    for (int i = 1; i < myArray.length; i++) {
        if (myArray[i] != myArray[j]) {
            j++;
            myArray[j] = myArray[i];
        }
    }
    return myArray;
}

Ответы на вопрос(5)

Ваш ответ на вопрос