Java >> Tutoriel Java >  >> Java

Différences entre les interfaces Set et List en Java

Ensemble vs Liste

Ici, nous verrons la différence entre l'interface Set et List en Java .

Au tout début, nous verrons comment l'interface Set diffère de l'interface List en Java ?

Définir l'interface en Java

  • Cette interface est disponible dans le package java.util.
  • Cette interface est une interface enfant de l'interface Collection.
  • Si nous voulons représenter un groupe d'objets individuels où "les objets ou éléments en double ne sont pas autorisés" (c'est-à-dire que nous ne pouvons pas insérer un objet plusieurs fois).
  • Si nous voulons représenter un groupe d'objets individuels où "l'ordre d'insertion n'est pas conservé" (c'est-à-dire que l'ordre d'insertion n'a pas besoin d'être le même que l'ordre de récupération).
  • Nous devrions opter pour l'interface Set où "les objets en double ne sont pas autorisés" (c'est-à-dire que la duplication est importante) et "l'ordre d'insertion n'est pas conservé" (c'est-à-dire que l'ordre d'insertion et de récupération n'est pas important).
  • La classe d'implémentation de l'interface Set est HashSet et LinkedHashSet.

Exemple :

Supposons que nous ayons un Set avec peu d'éléments. Ici, nous ajoutons les éléments dans l'ordre est [10, 20, 30, 50, null] et si nous récupérons les éléments, l'ordre de récupération des éléments peut être différent (c'est-à-dire qu'il n'est pas nécessaire que ce soit la même insertion et récupération l'ordre des éléments.) donc la sortie sera différente et l'ordre sera comme [null, 50, 20, 10, 30].

// Java program to demonstrate the behavior of Set interface 

import java.util.*;

class SetInterface {
    public static void main(String[] args) {
        // Creating an instance
        Set set = new HashSet();

        // By using add() method to add an elements
        set.add(10);
        set.add(20);
        set.add(30);
        set.add(50);
        set.add(null);
        // set.add(20)* if we add again 20 then we will not get 
        // an error but duplicate element  will be ignored

        // Display Set elements
        System.out.println("Retrieval order of the elements in Set is :" + set);
    }
}

Sortie

E:\Programs>javac SetInterface.java

E:\Programs>java SetInterface
Retrieval order of the elements in Set is :[null, 50, 20, 10, 30]

Interface de liste en Java

  • Cette interface est disponible dans le package java.util.
  • Cette interface est une interface enfant de l'interface Collection.
  • Si nous voulons représenter un groupe d'objets individuels où "les objets ou éléments en double sont autorisés" (c'est-à-dire que nous pouvons insérer un objet plusieurs fois).
  • Si nous voulons représenter un groupe d'objets individuels où "l'ordre d'insertion est préservé" (c'est-à-dire que l'ordre d'insertion doit être le même que l'ordre de récupération).
  • Nous devrions opter pour l'interface de liste où "les objets en double sont autorisés" (c'est-à-dire que la duplication n'est pas importante) et "l'ordre d'insertion est préservé" (c'est-à-dire que l'ordre d'insertion et de récupération est important).
  • La classe d'implémentation de l'interface List est ArrayList et LinkedList, Vector, Stack, etc.

Exemple :

Supposons que nous ayons une liste avec peu d'éléments. Ici, nous ajoutons les éléments dans l'ordre [10, 20, 30, 50, null, 30] et si nous récupérons les éléments, l'ordre de récupération des éléments doit être le même (c'est-à-dire qu'il doit s'agir de la même insertion et l'ordre de récupération des éléments.) donc la sortie sera la même et l'ordre sera comme [10, 20, 30, null, 30].

// Java program to demonstrate the behavior of List interface

import java.util.*;

class ListInterface {
    public static void main(String[] args) {
        // Creating an instance
        List list = new ArrayList();

        // By using add() method to add an elements
        list.add(10);
        list.add(20);
        list.add(30);
        list.add(50);
        list.add(null);

        // if we add again 30 then we will not get an error 
        // because duplicate element  is allowed
        list.add(30);

        // Display List elements
        System.out.println("Retrieval order of the elements in List is :" + list);
    }
}

Sortie

E:\Programs>javac ListInterface.java

E:\Programs>java ListInterface
Retrieval order of the elements in List is :[10, 20, 30, 50, null, 30]

Balise Java