Назад к вопросам
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);
}
}
В этом примере мы сначала считаем количество вхождений каждого числа, затем формируем два списка: один с элементами, которые встречаются один раз, другой — с повторяющимися.