Différence entre Set et List

Différence entre la liste de tableaux et la liste liée

Avant d'entrer dans les différences réelles, laissez-nous savoir ce qu'elles sont vraiment?

Qu'est-ce qu'un ensemble?

Nous avons rencontré le concept de Set en mathématiques et Set ici signifie plus ou moins la même chose. Oui, c'est une collection d'éléments et dans la plupart des cas, une collection d'éléments similaires. Vous pouvez essayer d’ajouter ces éléments à un ensemble et d’imprimer pour comprendre comment il est stocké..

Entrée dans un ensemble: 20, 50, 10, 30.

Il est actuellement stocké dans un ensemble en tant que 10, 20, 30, 50.

Les éléments sont triés ici et ne sont pas stockés dans leur ordre d'insertion. C’est l’une des fonctionnalités de Set qui trie toujours les éléments avant de les stocker et, bien sûr, il existe des exceptions, notamment le LinkedhashSet, qui conserve l’ordre d’insertion des éléments..

En termes informatiques, l'ensemble comprend peu de propriétés supplémentaires telles que méthodes et héritage. Les méthodes sont comme des fonctions et effectuent certaines tâches, telles que l'ajout, la suppression ou l'itération de l'ensemble des éléments. La plupart d'entre nous connaissons bien le terme héritage, qui signifie la même chose ici. Oui, nous pouvons hériter d'une méthode de sa collection afin qu'elle puisse être utilisée avec l'interface définie. Encore une fois, nous parlons d’un nouveau terme, c’est-à-dire l’interface de jeu, et ce n’est rien de plus que l’ensemble des éléments, y compris les méthodes..

Comment le mettre en oeuvre?

Juste pour une meilleure compréhension, nous avons représenté un ensemble avec sa syntaxe. A partir de la syntaxe ci-dessous, vous pouvez identifier les différents types d’ensembles, tels que HashSet et TreeSet..

importer java.util. *;

Classe publique Setexample

public static void main (String args [])

int count [] = 34, 22,10,60,30,22 25, 17, 76, 12, 88, 57;

Set set = new HashSet ();

essayer

pour (int i = 0; i < 5; i++)

set.add (compte [i]);

System.out.println (set);

TreeSet triéSeteg = nouvel TreeSet (set);

System.out.println (“Nous avons ici la sortie triée:”);

System.out.println (triSeteg);

System.out.println («Regardez le premier élément:« + (Integer) triSet.first ());

System.out.println («Regardez le dernier élément:« + (Integer) triSet.last ());

catch (Exception e)

La sortie du code ci-dessus est la suivante.

[25, 17, 76, 12, 88]
Ici nous avons la sortie triée:
[12, 17, 25, 76, 88]
Regardez le premier élément: 12
Regardez le dernier élément: 88

Quelle est la liste?

Une liste étend la collection similaire à celle d'un ensemble, mais conserve l'ordre d'insertion. Vous essayez d'ajouter les noms suivants à une liste et de voir comment y est ajouté..

L'entrée dans une liste: John, Nancy, Mary, Alice.

Comment est-il stocké dans une liste: John, Nancy, Mary, Alice.

Notez juste l'ordre dans lequel ils sont insérés. Vous pouvez identifier que 'John' est le premier élément de l'entrée ainsi que de la sortie et qu'il est suivi du même ordre dans lequel les noms sont insérés. On peut même considérer cela comme l'une des propriétés majeures de List.

Comment le mettre en oeuvre?

Voyons quelques-unes des méthodes de liste telles que ArrayList et LinkedList dans la syntaxe ci-dessous..

importer java.util. *;
Classe publique Collectionssample

public static void main (String [] args)

List a1 = new ArrayList ();
a1.add (“Jean”);
a1.add («Nancy»);
a1.add (“Marie”);
a1.add («Alice»);
System.out.println (”Les éléments de ArrayList sont”);
System.out.print (“\ t” + a1);

Liste l1 = new LinkedList ();
l1.add («Silvia»);
l1.add («Arjun»);
l1.add («Deepika»);
l1.add (“Susan”);
System.out.println ();
System.out.println (”Les éléments LinkedList sont”);
System.out.print (“\ t” + l1);

La sortie de la syntaxe ci-dessus est la suivante.

Les éléments ArrayList sont

[John, Nancy, Mary, Alice]

Éléments LinkedList

[Silvia, Arjun, Deepika, Susan]

Il est très clair d'après le code ci-dessus qu'ArrayList et LinkedList conservent tous deux l'ordre d'insertion..

Comment ils diffèrent?

  • Méthodes et descriptions:

The Set and the List a ses propres méthodes et examinons-en quelques-unes ici..

S.No Set - Méthodes Liste - Méthodes
1. ajouter() - C'est pour ajouter des objets à une collection. void add (int index, Object obj) - Il ajoute l'objet 'obj' à l'index spécifié de la liste d'invocation et s'assure qu'aucun élément n'est écrasé en décalant les éléments précédents..
2. clair() - C'est enlever des objets d'une collection. booléen addAll (int index, Collection c) - Il ajoute la collection entière 'c' à la liste d'invocation et à l'index spécifié. Cela garantit également qu'aucun élément n'est écrasé. Nous pouvons également vérifier l'exactitude de son fonctionnement en examinant la valeur de retour. Il renvoie 'true' si la modification aboutit, sinon il renvoie la valeur 'false'.
3. contient () - C'est pour vérifier si le Set contient un certain objet. Il retourne une valeur 'true' si l'objet est présent dans le Set. Object get (int index) - Il retourne l'élément ou l'objet à l'index spécifié.
4. est vide() - Il s’agit de déterminer si la collection aide à ne pas contenir d’éléments. Il retourne une valeur 'true' s'il n'y a pas d'élément. int lastIndexOf (Object obj) - Cela fonctionne de la même manière que l’inverse du Indice de() Méthode. Il retourne la dernière occurrence de l'objet spécifié 'obj' et une valeur '1' est renvoyée s'il n'y a pas d'objet de ce type dans la liste. Par conséquent, il peut également être utilisé comme contient () Méthode de l'interface de jeu.
6. retirer() - Il s'agit de supprimer un élément d'une collection en le spécifiant en tant que paramètre de la méthode.. ListIterator listIterator () - Il renvoie un itérateur à l'index de départ de la liste.
7. Taille() - C'est compter le nombre d'objets ou d'éléments qu'une collection a. ListIterator listIterator (int index) - Il aide à parcourir la liste invoquante en commençant à l'index spécifié.
8. - Object remove (int index) - Il supprime l'objet à l'index spécifié et renvoie l'élément supprimé en tant que résultat. Il réduit également les indices de liste résultants pour refléter la suppression..
9. - Ensemble d'objets (int index, Object obj) - C'est assigner l'objet 'obj' à la liste appelante à l'index spécifié.
dix. - Liste des sous-listes (int start, int end) - Il consiste à inclure les objets de l'index "début" à l'index "fin" dans la liste qui a appelé la méthode..
  • Maintien de l'ordre d'insertion:

L'ensemble ne conserve jamais l'ordre des éléments dans lesquels il est inséré alors que la liste le maintient. Il existe une exception à cette règle pour LinkedHashSet car il conserve l'ordre d'insertion, mais l'autre ensemble, tel que HashSet et TreeSet, trie les éléments avant de le stocker. Le même est décrit avec des exemples ci-dessous.

Ensemble Entrée: chat, poupée, pomme.

Stocké comme: Pomme, Chat, Poupée.

Liste entrée: chat, poupée, pomme.

Stocké en tant que: chat, poupée, pomme.

  • La présence de doublons:

Un ensemble n'autorise jamais les doublons alors qu'une liste le permet. Si une valeur en double doit être ajoutée à une liste, elle est écrasée. Regardez les exemples pour les doublons Set et List.

Entrée réglée: 10, 20, 20, 50.

Stocké comme: 10, 20, 50.

Entrée de liste: 10, 20, 20, 50.

Stocké comme: 10, 20, 20, 50.

  • Valeurs nulles:

Un ensemble ne peut avoir qu'une seule valeur NULL alors qu'une liste peut en avoir plusieurs et n'est limitée à aucun nombre.

Définir l'entrée: null, null, Man, Dog, Plane.

Stocké comme: null, chien, homme, avion.

Entrée de liste: null, null, Man, Dog, Plane.

Stocké comme: null, null, homme, chien, avion.

  • Utilisation d'Iterator & ListIterator:

La méthode Iterator fonctionne bien avec Set et List alors que la méthode ListIterator ne fonctionne qu'avec List. Le ListIterator peut être utilisé pour avancer ou reculer dans la liste..

  • La présence de Legacy Class:

L'ensemble n'a pas de classe héritée alors que l'interface de liste a un héritage appelé «vecteur». Un vecteur utilise l'interface List et conserve donc l'ordre d'insertion. En raison des efforts de synchronisation, la performance du vecteur en ajouts, suppressions et mises à jour est un peu plus lente.

  • Implémentations:

HashSet, LinkedHashSet et TreeSet sont quelques-unes des implémentations de cet ensemble. Quelques-unes des implémentations de List incluent ArrayList et LinkedList.

Quand utiliser Set & List?

L'utilisation de Set et List dépend uniquement de la nécessité de maintenir l'ordre d'insertion. Comme nous avons appris qu’un ensemble ne conserve jamais l’ordre d’insertion, il peut être utilisé lorsque l’ordre est de moindre importance. De la même manière, utilisez la liste lorsque vous devez également conserver la séquence d'insertion..

Différences sous forme de tableau:

S.No Différences dans Ensemble liste
1. Ordre d'insertion Il maintient l'ordre d'insertion. Le premier inséré reste en premier lieu et ainsi de suite quelle que soit sa valeur. Il ne maintient jamais l'ordre d'insertion.
2. Les méthodes Il utilise les méthodes telles que add (), clear (), includes (), isEmpty (), remove () et size (). Il utilise les méthodes telles que add (), addAll (), get (), lastIndexOf (), ListIterator () avec ou sans paramètre, remove (), set () et subList ()..
3. Les doublons Il ne permet jamais les doublons et dans le cas d'apparences de ce type, la valeur est écrasée. Il permet les doublons.
4. Valeurs nulles Il ne peut avoir qu'une seule valeur nulle au maximum. Il peut avoir un nombre quelconque de valeurs nulles.
5. Utilisation de Iterator () & listIterator () Il utilise uniquement la méthode iterator (). Il utilise à la fois l'itérateur () et le listIterator ().
6. Présence de Legacy Class Il n'y a pas de classe Legacy. Il a comme classe Legacy appelée comme vecteur.
7. Implémentations HashSet, LinkedHashSet et Tree Set sont quelques-unes des implémentations de l'interface Set.. LinkedList et ArrayList sont quelques-unes des implémentations d'interface List..

Espérons que nous avons inclus toutes les différences possibles entre le set et la liste. Si vous pensez que nous avons oublié quelque chose, faites-le nous savoir..