Les deux interfaces sont héritées de Collection.
Liste (interface)
L'ordre est la fonctionnalité la plus importante de List, qui garantit que l'ordre spécifique des éléments est maintenu
—. —ArrayList Permet un accès aléatoire rapide aux éléments.
- LinkedList optimise l'accès séquentiel. La surcharge liée à l'insertion et à la suppression du milieu de la liste n'est pas importante. RemoveLast(). Ces méthodes permettent d'utiliser LinkedList comme pile/file d'attente/file d'attente bidirectionnelle.
Set (interface)
Chaque élément stocké dans Set doit être unique et l'ordre de Il n'est pas garanti que les éléments soient conservés. Ajouter à l'ensemble L'objet doit définir la méthode equals()
--HashSet, un ensemble conçu pour une recherche rapide, et l'objet stocké dans le HashSet doit définir hashCode(). --TreeSet, un ensemble qui protège l'ordre, peut être extrait de l'ensemble en l'utilisant Séquence ordonnée
--LinkedHashSet A la vitesse de requête de HashSet et utilise en interne une liste chaînée pour maintenir l'ordre des éléments <.>
Les méthodes de stockage entre elles sont différentes :
TreeSet utilise le rouge et le noir. Les éléments sont triés selon la structure arborescente
HashSet utilise une fonction de hachage, spécialement conçue pour les requêtes rapides. .LinkedHashSet utilise le hachage en interne pour accélérer les requêtes, tout en utilisant des listes chaînées pour maintenir l'ordre des éléments.
Lors de l'utilisation de HashSet/TreeSet, equals() doit être défini pour la classe ; pour HashSet. En tant que style de programmation, lorsque equals() est remplacé, hashCode() doit également être remplacé.
Pour plus d'articles sur la relation et les différences entre Set et List en Java, veuillez prêter attention au Site Web chinois PHP !