Как да премахна повтарящи се елементи от ArrayList?
Имам списък ArrayList<String>
и искам да премахна повтарящи се низове от него. Как мога да направя това?
471
3
Имам списък ArrayList<String>
и искам да премахна повтарящи се низове от него. Как мога да направя това?
Ако не искате да има дубликати в дадена
Колекция
, трябва да помислите защо използватеКолекция
, която позволява дубликати. Най-лесният начин за премахване на повтарящи се елементи е да добавите съдържанието вSet
(което не позволява дублиране) и след това да добавитеSet
обратно вArrayList
:Разбира се, това разрушава подредбата на елементите в
ArrayList
.Въпреки че преобразуването на
ArrayList
вHashSet
ефективно премахва дубликатите, ако трябва да запазите реда на вмъкване, по-скоро бих ви предложил да използвате този вариантСлед това, ако трябва да получите обратно референция към
List
, можете отново да използвате конструктора за преобразуване.Ако не искате да има дубликати, използвайте Set вместо
List
. За да преобразуватеList
вSet
, можете да използвате следния код:Ако наистина е необходимо, можете да използвате същата конструкция, за да превърнете
Set
обратно вList
.