Collections Apache Commons - Interface de sac

De nouvelles interfaces sont ajoutées aux sacs de supports. Un Bag définit une collection qui compte le nombre de fois qu'un objet apparaît dans la collection. Par exemple, si un Bag contient {a, a, b, c} alors getCount ("a") retournera 2 tandis que uniqueSet () renvoie les valeurs uniques.

Déclaration d'interface

Voici la déclaration de l'interface org.apache.commons.collections4.Bag <E> -

public interface Bag<E>
   extends Collection<E>

Méthodes

Les méthodes d'inférence des sacs sont les suivantes:

N ° Sr. Méthode et description
1

boolean add(E object)

(Violation) Ajoute une copie de l'objet spécifié au sac.

2

boolean add(E object, int nCopies)

Ajoute des copies nCopies de l'objet spécifié au sac.

3

boolean containsAll(Collection<?> coll)

(Violation) Renvoie true si le sac contient tous les éléments de la collection donnée, en respectant la cardinalité.

4

int getCount(Object object)

Renvoie le nombre d'occurrences (cardinalité) de l'objet donné actuellement dans le sac.

5

Iterator<E> iterator()

Renvoie un Iterator sur l'ensemble des membres, y compris les copies dues à la cardinalité.

6

boolean remove(Object object)

(Violation) Supprime toutes les occurrences de l'objet donné du sac.

sept

boolean remove(Object object, int nCopies)

Supprime les copies nCopies de l'objet spécifié du sac.

8

boolean removeAll(Collection<?> coll)

(Violation) Supprime tous les éléments représentés dans la collection donnée, en respectant la cardinalité.

9

boolean retainAll(Collection<?> coll)

(Violation) Retirer tous les membres du sac qui ne sont pas dans la collection donnée, en respectant la cardinalité.

dix

int size()

Renvoie le nombre total d'articles dans le sac pour tous les types.

11

Set<E> uniqueSet()

Renvoie un ensemble d'éléments uniques dans le sac.

Méthodes héritées

Cette interface hérite des méthodes de l'interface suivante -

  • java.util.Collection

Exemple d'interface de sac

Un exemple de BagTester.java est le suivant -

import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagTester {
   public static void main(String[] args) {
      Bag<String> bag = new HashBag<>();
      //add "a" two times to the bag.
      bag.add("a" , 2);
      //add "b" one time to the bag.
      bag.add("b");
      //add "c" one time to the bag.
      bag.add("c");
      //add "d" three times to the bag.
      bag.add("d",3
      //get the count of "d" present in bag.
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      //get the set of unique values from the bag
      System.out.println("Unique Set: " +bag.uniqueSet());
      //remove 2 occurrences of "d" from the bag
      bag.remove("d",2);
      System.out.println("2 occurences of d removed from bag: " +bag);
      System.out.println("d is present " + bag.getCount("d") + " times.");
      System.out.println("bag: " +bag);
      System.out.println("Unique Set: " +bag.uniqueSet());
   }
}

Production

Vous verrez la sortie suivante -

d is present 3 times.
bag: [2:a,1:b,1:c,3:d]
Unique Set: [a, b, c, d]
2 occurences of d removed from bag: [2:a,1:b,1:c,1:d]
d is present 1 times.
bag: [2:a,1:b,1:c,1:d]
Unique Set: [a, b, c, d]