Viac na
Ako odstránim opakujúce sa prvky zo zoznamu ArrayList?
Mám ArrayList<String>
a chcem z neho odstrániť opakujúce sa reťazce. Ako to môžem urobiť?
471
3
Ak nechcete, aby sa v kolekcii
Collection
vyskytovali duplikáty, mali by ste zvážiť, prečo používate kolekciuCollection
, ktorá duplikáty umožňuje. Najjednoduchší spôsob, ako odstrániť opakujúce sa prvky, je pridať obsah doSet
(ktorý duplicity nepovoľuje) a potom pridaťSet
späť doArrayList
:Tým sa samozrejme zničí poradie prvkov v zozname
ArrayList
.Hoci prevod zoznamu
ArrayList
na súborHashSet
účinne odstraňuje duplikáty, ak potrebujete zachovať poradie vkladania, radšej by som vám odporučil použiť tento variantAk potom potrebujete získať späť odkaz na
List
, môžete opäť použiť konštruktor konverzie.Ak nechcete duplicitné položky, použite namiesto
Soznamu
Set. Na konverziuListu
naSet
môžete použiť nasledujúci kód:Ak je to naozaj potrebné, môžete použiť rovnakú konštrukciu na prevod
Set
späť naList
.