Collezioni Apache Commons - Interfaccia Bag

Nuove interfacce vengono aggiunte alle borse dei supporti. Una borsa definisce una collezione che conta il numero di volte in cui un oggetto appare nella collezione. Ad esempio, se un Bag contiene {a, a, b, c}, getCount ("a") restituirà 2 mentre uniqueSet () restituirà i valori univoci.

Dichiarazione di interfaccia

Di seguito è riportata la dichiarazione per l'interfaccia org.apache.commons.collections4.Bag <E> -

public interface Bag<E>
   extends Collection<E>

Metodi

I metodi per l'inferenza della borsa sono i seguenti:

Sr.No. Metodo e descrizione
1

boolean add(E object)

(Violazione) Aggiunge una copia dell'oggetto specificato alla Borsa.

2

boolean add(E object, int nCopies)

Aggiunge nCopies copie dell'oggetto specificato al Bag.

3

boolean containsAll(Collection<?> coll)

(Violazione) Restituisce vero se la borsa contiene tutti gli elementi nella raccolta data, rispettando la cardinalità.

4

int getCount(Object object)

Restituisce il numero di occorrenze (cardinalità) dell'oggetto specificato attualmente nella borsa.

5

Iterator<E> iterator()

Restituisce un Iteratore sull'intero set di membri, incluse le copie dovute alla cardinalità.

6

boolean remove(Object object)

(Violazione) Rimuove tutte le occorrenze dell'oggetto specificato dalla borsa.

7

boolean remove(Object object, int nCopies)

Rimuove nCopies copie dell'oggetto specificato dal Bag.

8

boolean removeAll(Collection<?> coll)

(Violazione) Rimuovere tutti gli elementi rappresentati nella raccolta data, rispettando la cardinalità.

9

boolean retainAll(Collection<?> coll)

(Violazione) Rimuovere tutti i membri della borsa che non sono nella raccolta data, rispettando la cardinalità.

10

int size()

Restituisce il numero totale di articoli nella borsa in tutti i tipi.

11

Set<E> uniqueSet()

Restituisce un set di elementi unici nella borsa.

Metodi ereditati

Questa interfaccia eredita i metodi dalla seguente interfaccia:

  • java.util.Collection

Esempio di interfaccia borsa

Un esempio di BagTester.java è il seguente:

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

Produzione

Vedrai il seguente output:

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]