Назад к вопросам
Middle
4
Как проверить, что списки равны по содержимому, но порядок не важен? List<String> actual = List.of("B", "A", "C"); List<String> expected = List.of("A", "B", "C");
Компании, где спрашивали
waysbits
Ответ от нейросети
sobes.tech AI
Чтобы проверить, что два списка содержат одинаковые элементы без учёта порядка, можно сравнить их как множества или отсортировать и сравнить.
Пример с использованием множества:
List<String> actual = List.of("B", "A", "C");
List<String> expected = List.of("A", "B", "C");
boolean areEqual = new HashSet<>(actual).equals(new HashSet<>(expected));
System.out.println(areEqual); // true
Если важна учёт количества повторяющихся элементов, то лучше использовать Collections.frequency или Map<String, Integer> для подсчёта количества каждого элемента.
Пример с сортировкой:
List<String> actualSorted = new ArrayList<>(actual);
List<String> expectedSorted = new ArrayList<>(expected);
Collections.sort(actualSorted);
Collections.sort(expectedSorted);
boolean areEqual = actualSorted.equals(expectedSorted);
System.out.println(areEqual); // true
Выбор метода зависит от требований к учёту повторов и производительности.