Différence entre Set et List

Différence entre la liste de tableaux et la liste de liens

Avant d'entrer dans les différences réelles, faisons-nous savoir ce qu'ils sont réellement?

Qu'est-ce qu'un ensemble?

Nous sommes tombés sur le concept de Set en mathématiques et l'ensemble 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 essayer d'imprimer pour comprendre comment il est réellement stocké.

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

Il est stocké dans un ensemble 10, 20, 30, 50.

Les éléments sont triés ici et ne sont pas stockés dans leur ordre d'REPLACEion. C'est l'une des caractéristiques de Set qui trie toujours les éléments avant de les stocker et bien sûr, il y a des exceptions et l'un de ceux-ci est LinkedhashSet car il maintient l'ordre d'REPLACEion des éléments.

Sur le plan informatique, l'ensemble inclut quelques 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 à travers l'ensemble des éléments. La plupart d'entre nous sont connus du terme Héritage et cela 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 Set. Encore une fois, nous parlons d'un nouveau terme i. e. l'interface Set, et ce n'est rien de plus que l'ensemble des éléments, y compris les méthodes.

Comment l'implémenter?

Juste pour mieux comprendre, nous avons représenté un ensemble avec sa syntaxe. À partir de la syntaxe ci-dessous, vous pouvez identifier les différents types de Set tels que HashSet et TreeSet.

importer java. util. *;

public class Setexample {

public static void principal (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 ++) {

définir. ajouter (compter [i]);

}

Système. en dehors. println (ensemble);

TreeSet sortedSeteg = nouveau TreeSet (set);

Système. en dehors. println ("Ici nous avons la sortie triée:");

Système. en dehors. println (triéSeteg);

Système. en dehors. println ("Regardez le premier élément:" + (Integer) sortedSet.premier ());

Système. en dehors. println ("Regardez le dernier élément:" + (Entier) sortedSet. 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
Qu'est-ce que List?

Une liste étend la collection de la même façon qu'un ensemble, mais conserve l'ordre d'REPLACEion. Vous essayez d'ajouter les noms suivants à une liste et de voir comment il est ajouté.

La contribution à une liste:

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

John, Nancy, Mary, Alice. Notez simplement 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 la sortie et est suivi du même ordre dans lequel les noms sont insérés. Nous pouvons même considérer cela comme l'une des propriétés majeures de List.

Comment l'implémenter?

Examinons quelques méthodes de List, telles que ArrayList et LinkedList dans la syntaxe ci-dessous.

importer java. util. *;

public class Collectionssample {
public static void principal (String [] args) {

Liste a1 = new ArrayList ();

a1. ajouter ("John");
a1. ajouter ("Nancy");
a1. ajouter ("Mary");
a1. ajouter ("Alice");
Système. en dehors. println ("Les éléments ArrayList sont");
Système. en dehors. print (" t" + a1);
Liste l1 = nouvelle LinkedList ();

l1. ajouter ("Silvia");
l1. ajouter ("Arjun");
l1. ajouter ("Deepika");
l1. ajouter ("Susan");
Système. en dehors. println ();
Système. en dehors. println ("Les éléments LinkedList sont");
Système. en dehors. 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 à partir du code ci-dessus que les ArrayList et LinkedList maintient l'ordre d'REPLACEion.

Comment ils diffèrent?

Méthodes et descriptions:

  • L'ensemble et la liste ont leurs propres méthodes et examinons-en quelques-unes ici.

S. No

Set - Méthodes Liste - Méthodes 1.
add () - Il s'agit d'ajouter des objets à une collection. void add (int index, Objet obj) - Il ajoute l'objet 'obj' à l'index spécifié de la liste invoquée et il s'assure qu'aucun élément n'est écrasé en déplaçant les éléments précédents. 2.
clear () - Il s'agit de supprimer des objets d'une collection. boolean 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 retourne 'true' si la modification est réussie sinon, il renvoie une valeur 'false'. 3.
contains () - C'est pour vérifier si le Set contient un certain objet. Il renvoie une valeur 'true' si l'objet est présent dans l'ensemble. Object get (int index) - Renvoie l'élément ou l'objet à l'index spécifié. 4.
isEmpty () - Il s'agit de déterminer si la collection ne contient aucun élément. Il renvoie une valeur 'true' s'il n'y a pas d'élément. int lastIndexOf (Object obj) - Cela fonctionne comme l'inverse de la méthode indexOf () . Il renvoie la dernière occurrence de l'objet 'obj' spécifié et une valeur '1' est renvoyée s'il n'y a pas d'objet dans la liste. Par conséquent, il peut également être utilisé comme contains () Méthode de l'interface Set. 6.
remove () - 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 () - Renvoie un itérateur à l'index de départ de la liste. 7.
size () - Il s'agit de compter le nombre d'objets ou d'éléments d'une collection. ListIterator listIterator (int index) - Il est utile de parcourir la liste d'appel en commençant par l'index spécifié. 8.
- Objet remove (index int) - Il supprime l'objet à l'index spécifié et renvoie l'élément supprimé comme résultat. Il décrémente également les indices de liste résultants pour refléter la suppression. 9.
- Ensemble d'objets (int index, Object obj) - Il s'agit d'affecter l'objet 'obj' à la liste d'invocation à l'index spécifié. 10.
- Liste subList (int start, int end) - Elle doit inclure les objets de l'index 'start' à l'index 'end' dans la liste qui a appelé la méthode. Maintenance de l'ordre d'REPLACEion:
  • L'ensemble ne conserve jamais l'ordre des éléments dans lesquels ils sont insérés alors que la liste le maintient. Il existe une exception à cette règle pour LinkedHashSet car elle maintient l'ordre d'REPLACEion mais l'autre Set tel que HashSet et TreeSet trie les éléments avant de le stocker. La même chose est décrite avec des exemples ci-dessous.

Réglez

Entrée: Cat, Doll, Apple. Stocké comme: Pomme, Chat, Poupée.

Entrée de liste: Chat, poupée, pomme.

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

La présence de Duplicates:

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

Définir entré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 nulle alors qu'une liste peut avoir plus d'une valeur nulle et n'est limitée à aucun nombre.

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

Enregistré comme: null, Chien, Homme, Avion.

Entrée de liste: null, null, Homme, Chien, Plan.

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 fonctionne uniquement avec List. Le ListIterator peut être utilisé pour avancer et reculer dans la liste.

La présence de Legacy Class:

  • L'ensemble n'a pas de classe héritée alors que l'interface List a un héritage appelé le 'vecteur'. Un vecteur utilise l'interface List et maintient donc l'ordre d'REPLACEion. En raison des efforts de synchronisation, la performance du vecteur dans les ajouts, les suppressions et les mises à jour est un peu plus lente.

Implémentations:

  • Parmi les implémentations de Set, rares sont celles de HashSet, LinkedHashSet et TreeSet. Parmi les implémentations de List, peu incluent ArrayList et LinkedList.

Quand utiliser Set & List?

L'utilisation de Set et List est purement dépendante de l'exigence de maintenance de l'ordre d'REPLACEion.Comme nous avons appris qu'un ensemble ne maintient jamais l'ordre d'REPLACEion, 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'REPLACEion.

Différences sous forme de tableau:

S. Non

Différences dans Définir Liste 1.
Ordre d'REPLACEion Il maintient l'ordre d'REPLACEion. Le premier inséré reste en premier lieu et ainsi de suite quelle que soit sa valeur. Il ne conserve jamais l'ordre d'REPLACEion. 2.
Méthodes Il utilise les méthodes telles que add (), clear (), contains (), 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.
Duplicates Il n'autorise jamais les doublons et dans le cas de telles apparences, la valeur est écrasée. Permet les doublons. 4.
Valeurs nulles Il ne peut avoir qu'une seule valeur nulle au maximum. Il peut avoir n'importe quel nombre de valeurs nulles. 5.
Utilisation de Iterator () & listIterator () Il utilise uniquement la méthode iterator (). Il utilise à la fois l'itérateur () et le listIterateur (). 6.
Présence de Legacy Class Il n'y a pas de classe Legacy. Il a comme classe Legacy appelée comme un vecteur. 7.
Implémentations Peu d'implémentations de l'interface Set sont HashSet, LinkedHashSet et Tree Set. Peu d'implémentations de l'interface List sont LinkedList et ArrayList. J'espère que nous avons inclus toutes les différences possibles entre l'ensemble et la liste. Si vous pensez que nous avons manqué quelque chose, merci de nous le faire savoir.