précédent | suivant | table des matières

HashSet

Cette classe implémente l'interface Set, en utilisant une table hachée. Un HashSet est implanté comme une HashMap, dont les clés sont les éléments du hashSet et les valeurs sont toutes une même valeur PRESENT.
Les opérations get et put sont en temps constant.
La capacité est le nombre de listes. Le load factor (0.75 par défaut) est  la limite de remplissage de la table à partir de laquelle la table est automatiquement agrandie.

1 Constructeurs :

HashSet()
Crée une HashSet de capacité initiale 16 et de loadFactor 0.75.
HashSet( int capaciteInitiale)
Crée une HashSet de capacité initiale capaciteInitiale et de loadFactor 0.75.
HashSet( int capaciteInitiale, float loadFactor)
Crée une HashSet de capacité initiale capaciteInitiale et et de loadFactor loadFactor.
HashSet(Collection<? extends E> c)
Crée une HashSet contenant tous les élément de la Collection c.

2 Méthodes :

void clear()
Supprime tous les élément du Set.
boolean add(E o)
Ajoute o dans le Set et  retourne true si o a été effectivement ajouté et false sinon (o était déjà présent dans le Set)
boolean contains(Object o)
Retourne true si l'objet o est dans le Set et false sinon.
boolean isEmpty()
Retourne true si le Set est vide et false sinon.
boolean remove(Object o)
Enlève du Set l'objet o et retourne true, retourne false si o n'est pas dans le Set.
int size()
Retourne le nombre d'éléments du Set.
Iterator<E> iterator()
Retourne un itérateur sur les éléments du Set.

3 Définition de quelques méthodes :

public class HashSet<E> extends AbstractSet<E> implements Set<E>{
   private transient HashMap<E,Object> map;
   // valeur bidon 
   private static final Object PRESENT = new Object();
   public HashSet(int initialCapacity, float loadFactor) {
      map = new HashMap<E,Object>(initialCapacity, loadFactor);
   }
   public boolean add(E o) {
      return map.put(o, PRESENT)==null;
   }
   
   public boolean remove(Object o) {
       return map.remove(o)==PRESENT;
   } 
   . . .

haut de la page