Не смогла решить задачу и посмотрела правильное решение. Объясните, пожалуйста, зачем тут вводится новая переменная currentString. Что дает выражение - String currentString = strings[i]; В переменную сохраняется массив или первое значение массива? Почему мы не можем просто сравнить циклы с i и j по очереди? И если они равны, то присваивать null. Вот так: public class Solution { public static String[] strings; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); strings = new String[6]; for (int i = 0; i < 6; i++){ strings[i] = scanner.nextLine();} for (int i = 0; i < strings.length; i++) { for (int j = i + 1; j < strings.length; j++) { if ((strings[i].equals(strings[j])) { strings[j] = null; strings[i] = null; } } for (int i = 0; i < strings.length; i++) { System.out.print(strings[i] + ", "); } } } А это правильное решение: package com.javarush.task.pro.task05.task0508; 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[6]; for (int i = 0; i < 6; i++) { strings[i] = scanner.nextLine(); } for (int i = 0; i < strings.length; i++) { String currentString = strings[i]; for (int j = i + 1; j < strings.length; j++) { if (currentString == null) { break; } if (currentString.equals(strings[j])) { strings[j] = null; strings[i] = null; } } } for (int i = 0; i < strings.length; i++) { System.out.print(strings[i] + ", "); } } } и еще вот это тоже не очень понятно... if (currentString == null) { break; Спасибо большое заранее!!