Sobes.tech
Назад к вопросам
Senior
3

Задача на Java: дан массив int[], необходимо сформировать два списка — только уникальные и только дубликаты

Компании, где спрашивали
Сбер Право

Ответ от нейросети

sobes.tech AI

Для разделения массива int[] на списки уникальных элементов и дубликатов можно использовать HashMap для подсчёта вхождений:

import java.util.*;

public class UniqueAndDuplicates {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 2, 4, 5, 5, 6};
        Map<Integer, Integer> counts = new HashMap<>();

        for (int num : arr) {
            counts.put(num, counts.getOrDefault(num, 0) + 1);
        }

        List<Integer> unique = new ArrayList<>();
        List<Integer> duplicates = new ArrayList<>();

        for (Map.Entry<Integer, Integer> entry : counts.entrySet()) {
            if (entry.getValue() == 1) {
                unique.add(entry.getKey());
            } else {
                duplicates.add(entry.getKey());
            }
        }

        System.out.println("Уникальные: " + unique);
        System.out.println("Дубликаты: " + duplicates);
    }
}

В этом примере мы сначала считаем количество вхождений каждого числа, затем формируем два списка: один с элементами, которые встречаются один раз, другой — с повторяющимися.