Colecciones de Apache Commons - Interfaz de bolsa

Se agregan nuevas interfaces a las bolsas de soporte. Una Bolsa define una colección que cuenta el número de veces que un objeto aparece en la colección. Por ejemplo, si una Bolsa contiene {a, a, b, c}, getCount ("a") devolverá 2 mientras que uniqueSet () devuelve los valores únicos.

Declaración de interfaz

A continuación se muestra la declaración de la interfaz org.apache.commons.collections4.Bag <E>:

public interface Bag<E>
   extends Collection<E>

Métodos

Los métodos para la inferencia de bolsas son los siguientes:

No Señor. Método y descripción
1

boolean add(E object)

(Violación) Agrega una copia del objeto especificado a la Bolsa.

2

boolean add(E object, int nCopies)

Agrega nCopias copias del objeto especificado a la Bolsa.

3

boolean containsAll(Collection<?> coll)

(Violación) Devuelve verdadero si la bolsa contiene todos los elementos de la colección dada, respetando la cardinalidad.

4

int getCount(Object object)

Devuelve el número de ocurrencias (cardinalidad) del objeto dado actualmente en la bolsa.

5

Iterator<E> iterator()

Devuelve un iterador sobre todo el conjunto de miembros, incluidas las copias debido a la cardinalidad.

6

boolean remove(Object object)

(Violación) Elimina todas las ocurrencias del objeto dado de la bolsa.

7

boolean remove(Object object, int nCopies)

Elimina copias nCopias del objeto especificado de la Bolsa.

8

boolean removeAll(Collection<?> coll)

(Violación) Elimina todos los elementos representados en la colección dada, respetando la cardinalidad.

9

boolean retainAll(Collection<?> coll)

(Violación) Retirar a los miembros de la bolsa que no estén en la colección dada, respetando la cardinalidad.

10

int size()

Devuelve el número total de artículos de la bolsa en todos los tipos.

11

Set<E> uniqueSet()

Devuelve un conjunto de elementos únicos en la bolsa.

Métodos heredados

Esta interfaz hereda métodos de la siguiente interfaz:

  • java.util.Collection

Ejemplo de interfaz de bolsa

Un ejemplo de BagTester.java es el siguiente:

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());
   }
}

Salida

Verá la siguiente salida:

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]