Удалить повторяющиеся элементы из ArrayList в Java
Опубликовано: 3 Декабря, 2021
Предварительное условие: ArrayList в Java
Учитывая ArrayList, задача состоит в том, чтобы удалить повторяющиеся элементы ArrayList в Java.
Примеры:
Ввод: ArrayList = [1, 2, 2, 3, 4, 4, 4] Вывод: [1, 2, 3, 4] Ввод: ArrayList = [12, 23, 23, 34, 45, 45, 45, 45, 57, 67, 89] Вывод: [12, 23, 34, 45, 57, 67, 89]
Ниже приведены различные методы удаления повторяющихся элементов ArrayList в Java:
- Использование Set: поскольку Set - это коллекция, в которой нет повторяющихся элементов. Следовательно, решение может быть достигнуто с помощью Set.
Подход:
- Получите ArrayList с повторяющимися элементами.
- Преобразуйте ArrayList в Set.
- Теперь преобразуйте Set обратно в ArrayList. Это удалит все повторяющиеся элементы.
Ниже представлена реализация описанного выше подхода:
// Java code to illustrate remove duolicate
// of ArrayList using hashSet<> method
import
java.util.*;
public
class
GFG {
public
static
void
main(String args[])
{
// create a ArrayList String type
ArrayList<String>
gfg =
new
ArrayList<String>();
// Initialize an ArrayList
gfg.add(
"Geeks"
);
gfg.add(
"for"
);
gfg.add(
"Geeks"
);
// print ArrayList
System.out.println(
"Original ArrayList : "
+ gfg);
// -----Using LinkedHashSet-----
System.out.println(
" Using LinkedHashSet: "
);
// create a set and copy all value of list
Set<String> set =
new
LinkedHashSet<>(gfg);
// create a list and copy all value of set
List<String> gfg1 =
new
ArrayList<>(set);
// print ArrayList
System.out.println(
"Modified ArrayList : "
+ gfg1);
// -----Using HashSet-----
System.out.println(
" Using HashSet: "
);
// create a set and copy all value of list
Set<String> set1 =
new
HashSet<>(gfg);
// create a list and copy all value of set
List<String> gfg2 =
new
ArrayList<>(set);
// print ArrayList
System.out.println(
"Modified ArrayList : "
+ gfg2);
}
}
Выход:Исходный ArrayList: [Компьютерщики, для компьютерных фанатов] Использование LinkedHashSet: Измененный ArrayList: [Компьютерщики, для] Использование HashSet: Измененный ArrayList: [Компьютерщики, для]
- Использование Java 8 Lambdas:
Подход:
- Получите ArrayList с повторяющимися элементами.
- Преобразуйте ArrayList в Stream с помощью метода stream ().
- Задайте условие фильтра, чтобы оно было отличным, используя метод strict ().
- Соберите отфильтрованные значения в виде списка с помощью метода collect (). В этом списке будут удалены повторяющиеся элементы.
Ниже представлена реализация описанного выше подхода:
Пример:
// Java code to illustrate remove duolicate
// of ArrayList using hashSet<> method
import
java.util.*;
import
java.util.stream.Collectors;
public
class
GFG {
public
static
void
main(String args[])
{
// create a ArrayList String type
ArrayList<String>
gfg =
new
ArrayList<String>();
// Initialize an ArrayList
gfg.add(
"Geeks"
);
gfg.add(
"for"
);
gfg.add(
"Geeks"
);
// print ArrayList
System.out.println(
"Original ArrayList : "
+ gfg);
// create a list and copy all distinct value of list
List<String> gfg1 = gfg.stream()
.distinct()
.collect(Collectors.toList());
// print modified list
System.out.println(
"Modified List : "
+ gfg1);
}
}
Выход:Исходный ArrayList: [Компьютерщики, для компьютерных фанатов] Измененный список: [Компьютерщики, для]
Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .