Différence clé - Liste vs Set
La plupart des langages de programmation utilisent des tableaux pour stocker un ensemble de données du même type. Un inconvénient majeur des tableaux est qu'une fois la taille du tableau déclarée, elle ne peut plus être modifiée. Si le programmeur souhaite stocker des valeurs dépassant la taille du tableau, il doit créer un nouveau tableau et copier les éléments existants dans le nouveau tableau. Dans ces situations, les collections peuvent être utilisées. Il est possible d'ajouter des éléments, de supprimer des éléments et de nombreuses autres opérations avec le support des collections. Il existe différents types de collections disponibles dans les langages de programmation tels que Java. List et Set sont des interfaces de la hiérarchie des collections. L'interface de base pour les autres interfaces est Collection. La principale différence entre List et Set est que List prend en charge le stockage du même élément plusieurs fois, tandis que Set ne prend pas en charge le stockage du même élément plusieurs fois. Par conséquent, un ensemble ne permet pas la duplication.
Qu'est-ce qu'une liste ?
La liste est une interface qui étend l'interface Collection. Il existe un certain nombre de méthodes dans l'interface Collection. La méthode add permet d'ajouter un élément. La « méthode de suppression » consiste à supprimer un élément. Il existe la «méthode addAll» pour ajouter plusieurs éléments tandis que la «méthode removeAll» permet de supprimer les éléments de la collection. La méthode contains permet de déterminer si un objet spécifique est présent ou non dans la liste. Le 'containsAll' consiste à trouver si un ensemble d'objets est présent dans la collection. La méthode iterator est utilisée pour parcourir les éléments de la liste. Comme List étend Collection, toutes les méthodes de Collection appartiennent à List. Outre ces méthodes, la liste a des méthodes telles que get et set. Le programmeur peut obtenir une valeur à un index spécifique en utilisant la méthode get. Le programmeur peut définir une valeur à un index spécifique en utilisant la méthode set. Le 'indexOf' est utilisé pour trouver l'index d'un élément.
Dans une liste, les opérations peuvent être effectuées en fonction de la position. Le programmeur peut fournir l'élément de données qui doit être ajouté à l'index. Il sera donc ajouté à l'index spécifique. Si le programmeur ne donne pas d'index, l'élément sera ajouté à la fin de la liste. Il maintient également l'ordre inséré. Si l'élément 1 est ajouté, puis l'élément 2 est ajouté, alors l'élément 1 sera avant l'élément 2.
Figure 01: Liste et ensemble
ArrayList, LinkedList, Vector sont des classes qui implémentent List. Dans une ArrayList, l'accès à un élément est rapide mais l'insertion et la suppression sont plus lentes. ArrayList n'est pas thread-safe. L'accès à la même ArrayList à partir de plusieurs threads peut ne pas donner le même résultat. Dans une LinkedList, les éléments sont liés à la fois en arrière et en avant. L'insertion et la suppression d'éléments à l'aide d'une LinkedList est plus rapide que la ArrayList. La LinkedList implémente List et Queue Both. Vector est similaire à ArrayList, mais il est sûr car toutes les méthodes sont synchronisées.
Qu'est-ce que Set ?
Set est une interface qui étend l'interface Collection. Comme l'interface Set étend Collection, toutes les méthodes de Collection appartiennent également à Set. Un ensemble ne prend pas en charge les valeurs de duplication. Par conséquent, le programmeur ne peut pas stocker deux fois le même élément. Il conserve un ensemble unique d'éléments. L'interface SortedSet étend l'interface Set. SortedSet maintient les éléments dans un ordre trié. L'interface NavigableSet étend SortedSet. Le NavigableSet fournit des méthodes de navigation telles que le bas, le sol, le plafond, etc.
HashSet, LinkedHashSet et TreeSet sont des classes qui implémentent l'interface Set. Le HashSet implémente l'interface Set. Il ne maintient pas l'ordre inséré. Si les valeurs sont insérées sous la forme a, x, b, elles peuvent être stockées sous la forme, x, a, b. Le LinkedSet maintient l'ordre inséré. Si les éléments sont insérés dans l'ordre a, x, b, l'ordre de stockage sera a, x, b. Le TreeSet implémente Set et NavigableSet. Il ne maintient pas l'ordre d'insertion mais stocke les éléments dans l'ordre trié. Si l'ordre inséré est a, c, b, alors les éléments seront stockés comme a, b, c. Tous les HashSet, LinkedHashSet et TreeSet n'auront aucun élément en double.
Quelles sont les similitudes entre la liste et l'ensemble ?
- Les interfaces List et Set étendent l'interface Collection.
- Les listes et les ensembles prennent en charge les opérations telles que l'ajout et la suppression d'éléments.
Quelle est la différence entre List et Set ?
Liste contre Set |
|
List Interface est la sous-interface de Collection qui contient des méthodes pour effectuer des opérations telles que l'insertion, la suppression en fonction de l'index. | Set Interface est une sous-interface de Collection qui contient des méthodes pour effectuer des opérations telles que l'insertion, la suppression d'éléments tout en conservant les éléments uniques. |
Classes | |
ArrayList, Vector et LinkedList sont des classes qui implémentent l'interface List. | HashSet, LinkedHashSet et TreeSet sont des classes qui implémentent l'interface Set. |
Duplication d'élément | |
La liste prend en charge la duplication d'éléments. | Set ne prend pas en charge la duplication d'éléments. Les éléments sont uniques. |
Résumé - Liste vs Set
Les collections sont utilisées pour stocker dynamiquement des éléments. Les langages de programmation tels que Java fournissent une interface Collection. List et Set sont deux interfaces qui appartiennent à l'interface Collection. Les deux interfaces étendent Collection. Cet article traite de la différence entre List et Set. La principale différence entre List et Set est que List prend en charge le stockage du même élément plusieurs fois, tandis que Set ne prend pas en charge le stockage du même élément plusieurs fois. Set conserve toujours des éléments uniques.