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

AbstractSet

Cette classe fournit  une implémentation minimale de quelques méthodes de l'interface Set. Elle redéfinit uniquement les méthodes equals et la méthode removeAll de la classe AbstractCollection.

public boolean equals(Object o) {
   if (o == this) return true;
   if (!(o instanceof Set)) return false;
   Collection c = (Collection) o;<
   if (c.size() != size()) return false;
   try {
      return containsAll(c);
   } catch(ClassCastException unused)  {
      return false;
   } catch(NullPointerException unused) {
      return false;
   }
}

L'algorithme de removeAll parcourt la Collection la plus petite en nombre d'éléments :

public boolean removeAll(Collection<?> c) { 
   boolean modifie = false;
   if (size() > c.size()) {
      for (Iterator<?> i = c.iterator(); i.hasNext(); )
          modifie |= remove(i.next());
   } else {
      for (Iterator<?> i = iterator(); i.hasNext(); ) {
         if(c.contains(i.next())) {
            i.remove();
            modifie = true;
         }
      }
   }
   return modifie;
}

haut de la page