Περισσότερα
Πώς μπορώ να αφαιρέσω επαναλαμβανόμενα στοιχεία από ArrayList;
Έχω μια ArrayList<String>
, και θέλω να αφαιρέσω επαναλαμβανόμενες συμβολοσειρές από αυτήν. Πώς μπορώ να το κάνω αυτό;
471
3
Αν δεν θέλετε διπλότυπα σε μια
Συλλογή
, θα πρέπει να σκεφτείτε γιατί χρησιμοποιείτε μιαΣυλλογή
που επιτρέπει διπλότυπα. Ο ευκολότερος τρόπος για να αφαιρέσετε επαναλαμβανόμενα στοιχεία είναι να προσθέσετε τα περιεχόμενα σε έναSet
(το οποίο δεν θα επιτρέπει διπλά) και στη συνέχεια να προσθέσετε τοSet
πίσω στοArrayList
:Φυσικά, αυτό καταστρέφει τη διάταξη των στοιχείων της
ArrayList
.Αν και η μετατροπή της
ArrayList
σεHashSet
αφαιρεί αποτελεσματικά τα αντίγραφα, αν πρέπει να διατηρήσετε τη σειρά εισαγωγής, θα σας πρότεινα να χρησιμοποιήσετε αυτή την παραλλαγήΣτη συνέχεια, αν χρειαστεί να πάρετε πίσω μια αναφορά
List
, μπορείτε να χρησιμοποιήσετε ξανά τον κατασκευαστή μετατροπής.Αν δεν θέλετε διπλότυπα, χρησιμοποιήστε ένα Set αντί για μια
List
. Για να μετατρέψετε μιαList
σεSet
μπορείτε να χρησιμοποιήσετε τον ακόλουθο κώδικα:Αν είναι πραγματικά απαραίτητο, μπορείτε να χρησιμοποιήσετε την ίδια κατασκευή για να μετατρέψετε ένα
Set
πίσω σεList
.