Ошибка NullPointerException при замене значений массива

Нужно Считать 10 строк и заполнить ими массив strings. Удалить повторяющиеся строки из массива strings, заменив их на null (null должны быть не строками "null").

Выдает ошибку NullPointerException. Ругается на следующие строчки

  • strings[j] = null;
  • clone = null;

Не могу понять почему

import java.util.Arrays;
import java.util.Scanner;

public class Solution {
public static String[] strings;

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

    strings = new String[10];
    for (int i = 0; i < 10; i++) {
        strings[i] = scanner.nextLine();
    }

    for(int i = 0;i < 10;i++){
        String clone =  strings[i];
        for(int j = 0;j < 10; j++){
            if(i == j){
                continue;
            } else {
                if(strings[i].equals(strings[j])){
                  strings[j] = null;  
                  clone = null;
                } else {
                  continue;  
                }
            }
        }
        strings[i] = clone;
    }
    Arrays.stream(strings).forEach(System.out::println);
}
}

Ответы (1 шт):

Автор решения: Эникейщик

Ошибка возникает в другой строчке, а именно в if(strings[i].equals(strings[j])) в тот момент, когда в strings[j] уже лежит null. Метод String.equals() с null не работает. Можно использовать, например, String.isEmpty(). Или сравнить прямо через if (str == null). Еще можно ловить это исключение через try..catch.

→ Ссылка