Vous êtes sur la page 1sur 25

PARTIE7: LES COLLECTIONS

GINFO3
INTRODUCTION

• Les collections en Java sont un framework qui fournit une


architecture pour stocker et manipuler un groupe d’objets.
• Les collections Java peuvent effectuer toutes les opérations que vous
effectuez sur une donnée, telles que la recherche, le tri, l’insertion, la
manipulation et la suppression.
• Collection Java désigne une seule unité d’objets.
• Java Collection framework fournit de nombreuses
• Interfaces (Set, List, Queue, Deque) et
• Classes (ArrayList, Vector, LinkedList, PriorityQueue, HashSet, LinkedHashSet,
TreeSet).
À QUOI SERVENT LES COLLECTIONS

• Stocker les données


• Autrement que dans de simples tableaux
• des structures de tailles dynamique
• des structures adaptées au besoin
• Sans réinventer la roue
• Gagner du temps et de l’énergie
• Bénéficier de classes robustes et performantes
• Fournies par Java en standard dans le package java.util
HIÉRARCHIE DU FRAMEWORK DES COLLECTIONS
LE PACKAGE JAVA.UTIL

• Le package java.util est l'un des packages les plus


couramment utilisé par les programmeurs java.
• Le package java.util contient toutes les classes et interfaces
de l’infrastructure Collections.
LES MÉTHODES DE L’INTERFACE COLLECTION

public boolean add(E e) Il est utilisé pour insérer un élément dans cette collection.

public boolean Il est utilisé pour insérer les éléments de collection spécifiés dans
addAll(Collection<? extends E> c) la collection d’appel.
public boolean remove(Object Il est utilisé pour supprimer un élément de la collection.
element)
public boolean Il est utilisé pour supprimer tous les éléments de la collection
removeAll(Collection<?> c) spécifiée de la collection appelante.

default boolean Il est utilisé pour supprimer tous les éléments de la collection qui
removeIf(Predicate<? super E> filter) satisfont a la condition spécifiée.

public boolean Il est utilisé pour supprimer tous les éléments de la collection
retainAll(Collection<?> c) d’appel à l’exception de la collection spécifiée.

public int size() It returns the total number of elements in the collection.
LES MÉTHODES DE L’INTERFACE COLLECTION

public void clear() Il supprime le nombre total d’éléments de la


collection.
public boolean contains(Object Il est utilisé pour rechercher un élément.
element)
Public boolean Il est utilisé pour rechercher la collection spécifiée
containsAll(Collection<?> c) dans la collection.
public Object[] toArray() Il convertit la collection en tableau.
public <T> T[] toArray(T[] a) Il convertit la collection en tableau. Ici, le type
d’exécution du tableau renvoyé est celui du tableau
spécifié.
public boolean isEmpty() Il vérifie si la collecte est vide.
LES MÉTHODES DE L’INTERFACE ITERATOR

Methode Description
public boolean hasNext() Elle renvoie true si l’itérateur a plus
d’éléments, sinon elle renvoie false.
public Object next() Il renvoie l’élément et déplace le pointeur du
curseur vers l’élément suivant.
public void remove() Il supprime les derniers éléments renvoyés par
l’itérateur. Il est moins utilisé.
INTERFACE LIST

• L’interface List est l’interface enfant de l’interface Collection.


• Elle se comporte comme une structure de données de type liste dans
laquelle nous pouvons stocker une collection ordonnée d’objets.
• Elle peut avoir des valeurs en double.
• L’interface List est implémentée par les classes ArrayList, LinkedList,
Vector et Stack.
INSTANTIATION DE LA L’INTERFACE
LIST

1.List <data-type> l1= new ArrayList();


2.List <data-type> l2 = new LinkedList();
3.List <data-type> l3 = new Vector();
4.List <data-type> l4 = new Stack();
LES ENUMERATIONS

• Une énumération correspond à une liste d’éléments accessibles


séquentiellement.
• Une énumération est définie par l’interface « java.util.Enumeration » et
propose les deux opérations suivantes :
• boolean hasMoreElements() : retourne « true » si l’énumération comporte encore des
éléments.
• Object nextElement() : récupère l’élément suivant de l’énumération.
• Plusieurs opérations de l’API java retournent une énumération afin de
parcourir une liste de valeurs
LA CLASSE ArrayList

• La classe ArrayList implémente l’interface List.


• Elle utilise un tableau dynamique pour stocker l’élément dupliqué de
différents types de données.
• La classe ArrayList conserve l’ordre d’insertion et n’est pas
synchronisée.
• Les éléments stockés dans la classe ArrayList sont accessibles de
manière aléatoire.
• Voir Exemple1
LA CLASSE LinkedList

• LinkedList implémente l’interface Collection.


• Elle utilise une liste doublement liée en interne pour stocker les
éléments.
• Elle peut stocker les éléments dupliqués.
• Elle conserve l’ordre d’insertion et n’est pas synchronisé.
• Dans LinkedList, la manipulation est rapide car aucun décalage n’est
requis.
• Voir Exemple2
LA CLASSE Vector

• Vector utilise un tableau dynamique pour stocker les éléments de données.


• Il est similaire à ArrayList.
• Toutefois, il est synchronisé et contient de nombreuses méthodes qui ne font pas partie de
l’infrastructure Collections.
• Parmi les méthodes proposées par cette classe on a :
➢ void addElement( Object obj ) : ajoute un nouvel élément au vecteur.
➢ int size() :retourne le nombre d’éléments du vecteur
➢ Object elementAt( int index ) :retourne l’élément demandé.
➢ void removeAllEmements() :supprime tous les éléments.
➢ void removeElementAt( in index ) : supprime un élément à un index du vecteur
➢ Object lastElement() :retourne le dernier élément du vecteur.
➢ Enumeration elements() : retourne l’ensemble des éléments du vecteur

▪ Voir Exemple3, Exemple4


LA CLASSE Stack (PILE OU LIFO)

• La pile est la sous-classe de Vector.


• Elle implémente la structure de données du dernier entré,
premier sorti (last-in-first-out), c’est-à-dire Pile.
• La pile contient toutes les méthodes de la classe Vector et fournit
également ses méthodes comme:
• boolean push(), boolean peek(), boolean push(object o), qui définit
ses propriétés.
• Voir Exemple5
L’INTERFACE Queue

• L’interface Queue hérite de la class Collection directement.


• Elle conserve l’ordre du premier entré, premier sorti (FIFO).
• Elle peut être défini comme une liste ordonnée utilisée pour
contenir les éléments qui sont sur le point d’être traités.
• Il existe différentes classes comme PriorityQueue, LinkedList
et ArrayDeque qui implémente l’interface Queue.
• Instanciation de Queue:
• Queue <String> q1 = new PriorityQueue();
• Queue <String> q2 = new ArrayDeque();
LA CLASSE PriorityQueue

• La classe PriorityQueue implémente l’interface Queue.


• Elle contient les éléments ou objets qui doivent être
traités selon leurs priorités.
• PriorityQueue N’autorise pas le stockage des valeurs
NULL dans la file d’attente.
• Voir Exemple 6
LA CLASSE ArrayDeque

• La classe ArrayDeque implémente l’interface Deque.


• Cela nous facilite l’utilisation de la Deque.
• Contrairement à la Queue, nous pouvons ajouter ou
supprimer les éléments des deux extrémités.
• ArrayDeque est plus rapide que ArrayList et Stack et
n’a aucune restriction de capacité.
• Voir Exemple 7
LA CLASSE HashSet

• La classe HashSet étend la classe AbstractSet qui implémente


l’interface Set.
• L’interface Set hérite des interfaces Collection et Iterable dans
l’ordre hiérarchique.
• Difference entre liste et HashSet:
• Une liste peut contenir des éléments en double alors que Set ne
contient que des éléments uniques.
• Voir Exemple 8
LA CLASSE HashTable

• Une table hash permet d’insérer des éléments dans un tableau


en fonction d’une clef.
• Pour récupérer l'élément on doit fournir la clef.
• Les éléments et les clefs sont du type « java.lang.Object ».
• Un hash code est calculé à partir de la clef, qui par la suite
sert d’index de l’élément au sein du tableau.
• Voir Exemple 9
LES CONSTRUCTEURS DE LA CLASSE

Constructor Description

Hashtable() Cela crée une table de hachage vide avec le facteur de


charge par défaut de 0,75 et une capacité initiale est de 11.

Hashtable(int capacity) Il accepte un paramètre entier et crée une table de hachage


qui contient une capacité initiale spécifiée.

Hashtable(int capacity, float Il est utilisé pour créer une table de hachage ayant la
loadFactor) capacité initiale et loadFactor spécifiées.

Hashtable(Map<? extends K,? Il crée une nouvelle table de hachage avec les mêmes
extends V> t) mappages que la carte donnée.
LES METHODES DE LA CLASSE HashTable

void clear() It is used to reset the hash table.


Object clone() It returns a shallow copy of the Hashtable.
V compute(K key, BiFunction<? super K,? It is used to compute a mapping for the specified key and its current
super V,? extends V> remappingFunction) mapped value (or null if there is no current mapping).
V computeIfAbsent(K key, Function<? super It is used to compute its value using the given mapping function, if
K,? extends V> mappingFunction) the specified key is not already associated with a value (or is mapped
to null), and enters it into this map unless null.
V computeIfPresent(K key, BiFunction<? It is used to compute a new mapping given the key and its current
super K,? super V,? extends V> mapped value if the value for the specified key is present and non-
remappingFunction) null.
Enumeration elements() It returns an enumeration of the values in the hash table.
Set<Map.Entry<K,V>> entrySet() It returns a set view of the mappings contained in the map.
boolean equals(Object o) It is used to compare the specified Object with the Map.
LES METHODES DE LA CLASSE HashTable

void forEach(BiConsumer<? super K,? super V> It performs the given action for each entry in the map until all entries have
action) been processed or the action throws an exception.

Void getOrDefault(Object key, V defaultValue) It returns the value to which the specified key is mapped, or defaultValue
if the map contains no mapping for the key.

int hashCode() It returns the hash code value for the Map
Enumeration<K> keys() It returns an enumeration of the keys in the hashtable.
Set<K> keySet() It returns a Set view of the keys contained in the map.
Void merge(K key, V value, BiFunction<? super If the specified key is not already associated with a value or is associated
V,? super V,? extends V> remappingFunction) with null, associates it with the given non-null value.

Void put(K key, V value) It inserts the specified value with the specified key in the hash table.
void putAll(Map<? extends K,? extends V> t)) It is used to copy all the key-value pair from map to hashtable.
LES METHODES DE LA CLASSE HashTable

Void putIfAbsent(K key, V value) If the specified key is not already associated with a value (or is mapped to null)
associates it with the given value and returns null, else returns the current
value.
boolean remove(Object key, Object value)It removes the specified values with the associated specified keys from the
hashtable.
Void replace(K key, V value) It replaces the specified value for a specified key.
boolean replace(K key, V oldValue, V It replaces the old value with the new value for a specified key.
newValue)
void replaceAll(BiFunction<? super K,? It replaces each entry's value with the result of invoking the given function on
super V,? extends V> function) that entry until all entries have been processed or the function throws an
exception.
String toString() It returns a string representation of the Hashtable object.
Collection values() It returns a collection view of the values contained in the map.
boolean contains(Object value) This method returns true if some value equal to the value exists within the hash
table, else return false.
LES METHODES DE LA CLASSE HashTable

boolean containsValue(Object value) This method returns true if some value equal to the value exists within the hash
table, else return false.

boolean containsKey(Object key) This method return true if some key equal to the key exists within the hash
table, else return false.
boolean isEmpty() This method returns true if the hash table is empty; returns false if it contains at
least one key.
protected void rehash() It is used to increase the size of the hash table and rehashes all of its keys.

Void get(Object key) This method returns the object that contains the value associated with the key.

Void remove(Object key) It is used to remove the key and its value. This method returns the value
associated with the key.
int size() This method returns the number of entries in the hash table.

Vous aimerez peut-être aussi