Logo: Marc Harnist

N° 253 - Collections d'objets: plus fort que les arrays
 - Le 06/07/2018 Catégorie: java


Java (et donc Eclipse) contient des classes qui permettent de lister et lire des données plus simplement qu'en tableaux (array) Source Une collection permet de stocker un nombre variable d'objets. Il y a principalement trois types de collection : les List, les Set et les Map. Chaque type a ses avantages et ses inconvénients.



Les Collections  stockent des objets alors que les Map stockent un couple clé - valeur.  





  1. Une collection permet de stocker un nombre variable d'objets.


  2. Il y a principalement trois types de collection : les List, les Set et les Map.


  3. Chaque type a ses avantages et ses inconvénients.


  4. Les Collection stockent des objets alors que les Map stockent un couple clé - valeur.


  5. Si vous insérez fréquemment des données en milieu de liste, utilisez une LinkedList.


  6. Si vous voulez rechercher ou accéder à une valeur via une clé de recherche, optez pour une collection de type Map.



 


Si vous avez une grande quantité de données à traiter, tournez-vous vers une liste de type Set.Il existe tout un panel de méthodes fournies avec cet objet : add() permet d'ajouter un élément ; get(int index) retourne l'élément à l'indice demandé ; remove(int index) efface l'entrée à l'indice demandé ; isEmpty() renvoie « vrai » si l'objet est vide ; removeAll() efface tout le contenu de l'objet ; contains(Object element) retourne « vrai » si l'élément passé en paramètre est dans l'ArrayList.


 



Les objets List



Les objets appartenant à la catégorie List sont, pour simplifier, des tableaux extensibles à volonté. 


On y trouve les objets Vector, LinkedList et ArrayList. 


De plus, les List contiennent des objets. 


 


Iterator



Afficher une liste: 



    List l = new LinkedList();


    l.add(1);


    l.add("Hello Marco!");


    l.add(12.5f);


 



   ListIterator li = l.listIterator();



    while(li.hasNext())


    System.out.println(li.next());Exemple


ArrayList



import java.util.ArrayList;


 


public class Test {


 


  public static void main(String[] args) {


         


    ArrayList al = new ArrayList();


    al.add(12);


    al.add("Une chaîne de caractères !");


    al.add(12.20f);


    al.add('d');


                


    for(int i = 0; i < al.size(); i++)


    {


      System.out.println("donnée à l'indice " + i + " = " + al.get(i));


    }               


  }


}


 


Résumé



si vous effectuez beaucoup de lectures sans vous soucier de l'ordre des éléments, optez pour une ArrayList ; en revanche, si vous insérez beaucoup de données au milieu de la liste, optez pour une Linkedlist.




L'objet HashMap



Cet objet ne diffère que très peu de la Hashtable:


 


il accepte la valeur null ;


 


il n'est pas Thread Safe.


 


En fait, les deux objets de type Map sont, à peu de choses près, équivalents.


 


Les objets Set



Un Set est une collection qui n'accepte pas les doublons. Par exemple, elle n'accepte qu'une seule fois null, car deux valeurs null sont considérées comme un doublon. On trouve parmi les Set les objets HashSet, TreeSet, LinkedHashSet… Certains Set sont plus restrictifs que d'autres : il en existe qui n'acceptent pas null, certains types d'objets, etc.