Назад к вопросам
Middle
67
questionbank
Как бы вы реализовали проект, в котором необходимо собрать в один список разные элементы, при этом исключая дублирование одних и тех же элементов?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
// Создаем MutableList для хранения элементов
val combinedList = mutableListOf<Any>()
// Создаем Set для отслеживания уникальных элементов и предотвращения дублирования
val uniqueElements = mutableSetOf<Any>()
// Добавляем элементы из различных источников (примеров списков)
val list1 = listOf("Элемент 1", 123, true, "Элемент 1")
val list2 = listOf(456, "Элемент 2", false, 123)
// Итерируемся по каждому списку и добавляем элементы, если они уникальны
list1.forEach { element ->
if (uniqueElements.add(element)) { // Set.add() возвращает true, если элемент добавлен успешно (т.е. он уникален)
combinedList.add(element)
}
}
list2.forEach { element ->
if (uniqueElements.add(element)) {
combinedList.add(element)
}
}
// combinedList теперь содержит уникальные элементы из list1 и list2
// uniqueElements содержит те же уникальные элементы в неупорядоченной форме
// Пример использования combinedList
combinedList.forEach { element ->
println(element)
}
Использую MutableList для итогового списка и MutableSet для отслеживания уникальности элементов. Set по своей природе не допускает дубликатов, что отлично подходит для этой задачи. При попытке добавить элемент, который уже содержится в Set, метод add() вернет false. Это позволяет условно добавлять элемент в итоговый список только тогда, когда он успешно добавлен в Set (то есть, является уникальным).