Collezioni Apache Commons - Guida rapida

Commons Collections aumenta il Java Collections Framework. Fornisce diverse funzionalità per semplificare la gestione della raccolta. Fornisce molte nuove interfacce, implementazioni e utilità.

Le caratteristiche principali di Commons Collections sono le seguenti:

  • Bag - Le interfacce della borsa semplificano le collezioni, che hanno un numero multiplo di copie di ogni oggetto.

  • BidiMap - Le interfacce BidiMap forniscono mappe bidirezionali, che possono essere utilizzate per cercare valori utilizzando chiavi o chiavi utilizzando valori.

  • MapIterator - L'interfaccia MapIterator fornisce un'iterazione semplice e facile sulle mappe.

  • Transforming Decorators - Trasformare i decoratori può modificare ogni oggetto di una collezione come e quando viene aggiunto alla collezione.

  • Composite Collections - Vengono utilizzate raccolte composite, in cui è necessario gestire più raccolte in modo uniforme.

  • Ordered Map - Le mappe ordinate mantengono l'ordine in cui vengono aggiunti gli elementi.

  • Ordered Set - I set ordinati mantengono l'ordine in cui vengono aggiunti gli elementi.

  • Reference map - La mappa di riferimento consente la raccolta dei rifiuti di chiavi / valori sotto stretto controllo.

  • Comparator implementations - Sono disponibili molte implementazioni di Comparator.

  • Iterator implementations - Sono disponibili molte implementazioni di Iterator.

  • Adapter Classes - Sono disponibili classi di adattatori per convertire array ed enumerazioni in raccolte.

  • Utilities- Sono disponibili utilità per testare o creare proprietà tipiche della teoria degli insiemi di raccolte come unione, intersezione. Supporta la chiusura.

Configurazione dell'ambiente locale

Se sei ancora disposto a configurare il tuo ambiente per il linguaggio di programmazione Java, questa sezione ti guiderà su come scaricare e configurare Java sulla tua macchina. Seguire i passaggi indicati di seguito per configurare l'ambiente.

Java SE è disponibile gratuitamente dal collegamento https://www.oracle.com/technetwork/java/archive-139210.html Quindi, scarichi una versione basata sul tuo sistema operativo.

Segui le istruzioni per scaricare Java ed esegui il file .exe per installare Java sulla tua macchina. Dopo aver installato Java sulla macchina, sarà necessario impostare le variabili di ambiente in modo che puntino alle directory di installazione corrette.

Configurazione del percorso per Windows 2000 / XP

Supponiamo che tu abbia installato Java in c:\Program Files\java\jdk directory

  • Fare clic con il tasto destro del mouse su "Risorse del computer" e selezionare "Proprietà".

  • Fare clic sul pulsante "Variabili d'ambiente" nella scheda "Avanzate".

  • Ora, modifica la variabile "Path" in modo che contenga anche il percorso dell'eseguibile Java. Esempio, se il percorso è attualmente impostato su'C:\WINDOWS\SYSTEM32', quindi modifica il percorso in lettura 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Configurazione del percorso per Windows 95/98 / ME

Supponiamo che tu abbia installato Java in c:\Program Files\java\jdk directory.

  • Modifica il file "C: \ autoexec.bat" e aggiungi la seguente riga alla fine: 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

Configurazione del percorso per Linux, UNIX, Solaris, FreeBSD

La variabile d'ambiente PATH dovrebbe essere impostata in modo che punti a dove sono stati installati i binari Java. Fare riferimento alla documentazione della shell, se si hanno problemi a farlo.

Esempio, se usi bash come shell, aggiungi la riga seguente alla fine del tuo '.bashrc: export PATH=/path/to/java:$PATH'

Editor Java popolari

Per scrivere i tuoi programmi Java, hai bisogno di un editor di testo. Ci sono molti IDE sofisticati disponibili sul mercato. Ma per ora, puoi considerare uno dei seguenti:

  • Notepad - Su macchina Windows, puoi utilizzare qualsiasi semplice editor di testo come Blocco note (consigliato per questo tutorial), TextPad.

  • Netbeans - È un IDE Java open-source e gratuito, che può essere scaricato da https://netbeans.org.

  • Eclipse - È anche un IDE Java sviluppato dalla comunità open source di eclipse e può essere scaricato da https://www.eclipse.org/.

Scarica l'archivio delle raccolte comuni

Scarica l'ultima versione del file jar di Apache Common Collections da commons-collections4-4.1-bin.zip. Al momento della stesura di questo tutorial, abbiamo scaricatocommons-collections4-4.1-bin.zip e l'ho copiato in C:\>Apache folder.

OS Nome dell'archivio
finestre commons-collections4-4.1-bin.zip
Linux commons-collections4-4.1-bin.tar.gz
Mac commons-collections4-4.1-bin.tar.gz

Imposta l'ambiente delle raccolte comuni di Apache

Impostare il APACHE_HOMEvariabile di ambiente in modo che punti alla posizione della directory di base in cui è archiviato il jar di Apache sulla macchina. Supponendo, abbiamo estratto commons-collections4-4.1-bin.zip nella cartella Apache su vari sistemi operativi come segue:

OS Nome dell'archivio
finestre Imposta la variabile d'ambiente APACHE_HOME su C: \ Apache
Linux esportare APACHE_HOME = / usr / local / Apache
Mac export APACHE_HOME = / Library / Apache

Imposta la variabile CLASSPATH

Impostare il CLASSPATHvariabile di ambiente per puntare alla posizione del vaso delle raccolte comuni. Supponendo che tu abbia memorizzato commons-collections4-4.1-bin.zip nella cartella Apache su vari sistemi operativi come segue:

OS Produzione
finestre Imposta la variabile d'ambiente CLASSPATH su% CLASSPATH%;% APACHE_HOME% \ commons-collections4-4.1-bin.jar;.;
Linux export CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.
Mac export CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.

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]

Nuove interfacce vengono aggiunte per supportare la mappa bidirezionale. Utilizzando la mappa bidirezionale, una chiave può essere ricercata utilizzando il valore e il valore può essere cercato facilmente utilizzando la chiave.

Dichiarazione di interfaccia

Di seguito è riportata la dichiarazione per org.apache.commons.collections4.BidiMap<K,V> interfaccia -

public interface BidiMap<K,V>
   extends IterableMap<K,V>

Metodi

I metodi per l'interfaccia BidiMap sono i seguenti:

Sr.No. Metodo e descrizione
1

K getKey(Object value)

Ottiene la chiave attualmente mappata al valore specificato.

2

BidiMap<V,K> inverseBidiMap()

Ottiene una visualizzazione di questa mappa in cui le chiavi e i valori sono invertiti.

3

V put(K key, V value)

Inserisce la coppia chiave-valore nella mappa, sostituendo qualsiasi coppia precedente.

4

K removeValue(Object value)

Rimuove la coppia chiave-valore attualmente mappata al valore specificato (operazione facoltativa).

5

Set<V> values()

Restituisce una vista Set dei valori contenuti in questa mappa.

Metodi ereditati

Questa interfaccia eredita i metodi dalle seguenti interfacce:

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

Esempio di interfaccia BidiMap

Un esempio di BidiMapTester.java è il seguente:

import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.bidimap.TreeBidiMap;
public class BidiMapTester {
   public static void main(String[] args) {
      BidiMap<String, String> bidi = new TreeBidiMap<>();
      bidi.put("One", "1");
      bidi.put("Two", "2");
      bidi.put("Three", "3");
      System.out.println(bidi.get("One"));
      System.out.println(bidi.getKey("1"));
      System.out.println("Original Map: " + bidi);
      bidi.removeValue("1");
      System.out.println("Modified Map: " + bidi);
      BidiMap<String, String> inversedMap = bidi.inverseBidiMap();
      System.out.println("Inversed Map: " + inversedMap);
   }
}

Produzione

Quando esegui il codice, vedrai il seguente output:

1
One
Original Map: {One=1, Three=3, Two=2}
Modified Map: {Three=3, Two=2}
Inversed Map: {2=Two, 3=Three}

L'interfaccia JDK Map è piuttosto difficile da iterare poiché l'iterazione deve essere eseguita su EntrySet o sugli oggetti KeySet. MapIterator fornisce una semplice iterazione su Map. L'esempio seguente illustra lo stesso.

Esempio di interfaccia MapIterator

Un esempio per MapIteratorTester.java è il seguente:

import org.apache.commons.collections4.IterableMap;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.map.HashedMap;
public class MapIteratorTester {
   public static void main(String[] args) {
      IterableMap<String, String> map = new HashedMap<>();
      map.put("1", "One");
      map.put("2", "Two");
      map.put("3", "Three");
      map.put("4", "Four");
      map.put("5", "Five");
      MapIterator<String, String> iterator = map.mapIterator();
      while (iterator.hasNext()) {
         Object key = iterator.next();
         Object value = iterator.getValue();
         System.out.println("key: " + key);
         System.out.println("Value: " + value);
         iterator.setValue(value + "_");
      }
      System.out.println(map);
   }
}

Produzione

L'output è indicato di seguito:

key: 3
Value: Three
key: 5
Value: Five
key: 2
Value: Two
key: 4
Value: Four
key: 1
Value: One
{3=Three_, 5=Five_, 2=Two_, 4=Four_, 1=One_}

OrderedMap è una nuova interfaccia per le mappe per mantenere l'ordine in cui vengono aggiunti gli elementi. LinkedMap e ListOrderedMap sono due implementazioni disponibili. Questa interfaccia supporta l'iteratore di Map e consente l'iterazione in entrambe le direzioni sia in avanti che all'indietro in una mappa. L'esempio seguente illustra lo stesso.

Esempio di interfaccia MapIterator

Un esempio di OrderedMapTester.java è il seguente:

import org.apache.commons.collections4.OrderedMap;
import org.apache.commons.collections4.map.LinkedMap;
public class OrderedMapTester {
   public static void main(String[] args) {
      OrderedMap<String, String> map = new LinkedMap<String, String>();
      map.put("One", "1");
      map.put("Two", "2");
      map.put("Three", "3");
      System.out.println(map.firstKey());
      System.out.println(map.nextKey("One"));
      System.out.println(map.nextKey("Two"));
   }
}

Produzione

Il risultato sarà il seguente:

One
Two
Three

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Verificare la presenza di elementi non nulli

Il metodo addIgnoreNull () di CollectionUtils può essere utilizzato per garantire che solo i valori non nulli vengano aggiunti alla raccolta.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.addIgnoreNull() metodo -

public static <T> boolean addIgnoreNull(Collection<T> collection, T object)

Parametri

  • collection - La raccolta a cui aggiungere non deve essere nulla.

  • object - L'oggetto da aggiungere, se nullo non verrà aggiunto.

Valore di ritorno

Vero se la collezione è cambiata.

Eccezione

  • NullPointerException - Se la raccolta è nulla.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.addIgnoreNull()metodo. Stiamo cercando di aggiungere un valore nullo e un valore non nullo di esempio.

import java.util.LinkedList;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = new LinkedList<String>();
      CollectionUtils.addIgnoreNull(list, null);
      CollectionUtils.addIgnoreNull(list, "a");
      System.out.println(list);
      if(list.contains(null)) {
         System.out.println("Null value is present");
      } else {
         System.out.println("Null value is not present");
      }
   }
}

Produzione

L'output è menzionato di seguito:

[a]
Null value is not present

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Unione di due elenchi ordinati

Il metodo collate () di CollectionUtils può essere utilizzato per unire due elenchi già ordinati.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.collate() metodo -

public static <O extends Comparable<? super O>> List<O>
   collate(Iterable<? extends O> a, Iterable<? extends O> b)

Parametri

  • a - La prima raccolta, non deve essere nulla.

  • b - La seconda raccolta, non deve essere nulla.

Valore di ritorno

Un nuovo elenco ordinato, contenente gli elementi della raccolta a e b.

Eccezione

  • NullPointerException - Se una delle raccolte è nulla.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.collate()metodo. Uniremo due elenchi ordinati e quindi stamperemo l'elenco unito e ordinato.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> sortedList1 = Arrays.asList("A","C","E");
      List<String> sortedList2 = Arrays.asList("B","D","F");
      List<String> mergedList = CollectionUtils.collate(sortedList1, sortedList2);
      System.out.println(mergedList);
   }
}

Produzione

L'output è il seguente:

[A, B, C, D, E, F]

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Trasformare una lista

Il metodo collect () di CollectionUtils può essere utilizzato per trasformare un elenco di un tipo di oggetti in un elenco di diversi tipi di oggetti.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.collect() metodo -

public static <I,O> Collection<O> collect(Iterable<I> inputCollection,
   Transformer<? super I,? extends O> transformer)

Parametri

  • inputCollection - La raccolta da cui ottenere l'input potrebbe non essere nulla.

  • Transformer - Il trasformatore da utilizzare, può essere nullo.

Valore di ritorno

Il risultato trasformato (nuovo elenco).

Eccezione

  • NullPointerException - Se la raccolta di input è null.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.collect()metodo. Trasformeremo un elenco di stringhe in un elenco di interi analizzando il valore intero da String.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Transformer;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> stringList = Arrays.asList("1","2","3");
      List<Integer> integerList = (List<Integer>) CollectionUtils.collect(
         stringList, new Transformer<String, Integer>() {
         @Override
         public Integer transform(String input) {
            return Integer.parseInt(input);
         }
      });
      System.out.println(integerList);
   }
}

Produzione

Quando usi il codice, otterrai il seguente codice:

[1, 2, 3]

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

metodo filter ()

Il metodo filter () di CollectionUtils può essere utilizzato per filtrare una lista per rimuovere oggetti che non soddisfano la condizione fornita dal predicato passato.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.filter() metodo -

public static <T> boolean filter(Iterable<T> collection,
   Predicate<? super T> predicate)

Parametri

  • collection - La raccolta da cui ottenere l'input potrebbe non essere nulla.

  • predicate - Il predicato da utilizzare come filtro può essere nullo.

Valore di ritorno

Vero se la raccolta viene modificata da questa chiamata, false in caso contrario.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.filter()metodo. Filtreremo un elenco di numeri interi per ottenere solo numeri pari.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList);
      CollectionUtils.filter(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Even numbers): " + integerList);
   }
}

Produzione

Produrrà il seguente risultato:

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]

metodo filterInverse ()

Il metodo filterInverse () di CollectionUtils può essere utilizzato per filtrare un elenco per rimuovere gli oggetti, che soddisfano la condizione fornita dal predicato passato.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.filterInverse() metodo -

public static <T> boolean filterInverse(
   Iterable<T> collection, Predicate<? super T> predicate)

Parametri

  • collection - La raccolta da cui ottenere l'input potrebbe non essere nulla.

  • predicate - Il predicato da utilizzare come filtro può essere nullo.

Valore di ritorno

Vero se la raccolta viene modificata da questa chiamata, false in caso contrario.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.filterInverse()metodo. Filtreremo un elenco di numeri interi per ottenere solo numeri dispari.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.Predicate;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<Integer> integerList = new ArrayList<Integer>(); 
      integerList.addAll(Arrays.asList(1,2,3,4,5,6,7,8));
      System.out.println("Original List: " + integerList); 
      CollectionUtils.filterInverse(integerList, new Predicate<Integer>() {
         @Override
         public boolean evaluate(Integer input) {
            if(input.intValue() % 2 == 0) {
               return true;
            }
            return false;
         }
      });
      System.out.println("Filtered List (Odd numbers): " + integerList);
   }
}

Produzione

Il risultato è come indicato di seguito:

Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Controllo dell'elenco non vuoto

Il metodo isNotEmpty () di CollectionUtils può essere utilizzato per verificare se una lista non è vuota senza preoccuparsi della lista nulla. Quindi non è necessario posizionare il controllo nullo ovunque prima di controllare la dimensione dell'elenco.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.isNotEmpty() metodo -

public static boolean isNotEmpty(Collection<?> coll)

Parametri

  • coll - La collezione da controllare, potrebbe essere nulla.

Valore di ritorno

Vero se non nullo e non vuoto.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.isNotEmpty()metodo. Controlleremo che una lista sia vuota o meno.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
      System.out.println("Non-Empty List Check: " + checkNotEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkNotEmpty1(List<String> list) {
      return !(list == null || list.isEmpty());
   }
   static boolean checkNotEmpty2(List<String> list) {
      return CollectionUtils.isNotEmpty(list);
   }
}

Produzione

L'output è fornito di seguito:

Non-Empty List Check: false
Non-Empty List Check: false

Controllo elenco vuoto

Il metodo isEmpty () di CollectionUtils può essere utilizzato per verificare se una lista è vuota senza preoccuparsi della lista nulla. Quindi non è necessario posizionare il controllo nullo ovunque prima di controllare la dimensione dell'elenco.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.isEmpty() metodo -

public static boolean isEmpty(Collection<?> coll)

Parametri

  • coll - La collezione da controllare, potrebbe essere nulla.

Valore di ritorno

Vero se vuoto o nullo.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.isEmpty()metodo. Controlleremo che una lista sia vuota o meno.

import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      List<String> list = getList();
      System.out.println("Empty List Check: " + checkEmpty1(list));
      System.out.println("Empty List Check: " + checkEmpty1(list));
   }
   static List<String> getList() {
      return null;
   }
   static boolean checkEmpty1(List<String> list) {
      return (list == null || list.isEmpty());
   }
   static boolean checkEmpty2(List<String> list) {
      return CollectionUtils.isEmpty(list);
   }
}

Produzione

Di seguito è riportato l'output del codice:

Empty List Check: true
Empty List Check: true

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Controllo della sottolista

Il metodo isSubCollection () di CollectionUtils può essere utilizzato per verificare se una raccolta contiene la raccolta data o meno.

Dichiarazione

Di seguito è riportata la dichiarazione per

org.apache.commons.collections4.CollectionUtils.isSubCollection() metodo -

public static boolean isSubCollection(
   Collection<?> a, Collection<?> b)

Parametri

  • a - La prima (sotto) raccolta, non deve essere nulla.

  • b - La seconda (super) raccolta, non deve essere nulla.

Valore di ritorno

Vero se e solo se a è una sotto-raccolta di b.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.isSubCollection()metodo. Controlleremo che una lista faccia parte di un'altra lista o no.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Is List 2 contained in List 1: " + 
         CollectionUtils.isSubCollection(list2, list1));
   }
}

Produzione

Riceverai il seguente output:

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Is List 2 contained in List 1: true

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Controllo dell'incrocio

Il metodo intersection () di CollectionUtils può essere utilizzato per ottenere gli oggetti comuni tra due raccolte (intersezione).

Dichiarazione

Di seguito è riportata la dichiarazione per org.apache.commons.collections4.CollectionUtils.intersection() metodo -

public static <O> Collection<O> intersection(Iterable<? extends O> a,
   Iterable<? extends O> b)

Parametri

  • a - La prima (sotto) raccolta, non deve essere nulla.

  • b - La seconda (super) raccolta, non deve essere nulla.

Valore di ritorno

L'intersezione delle due collezioni.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.intersection()metodo. Otterremo l'intersezione di due elenchi.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Commons Objects of List 1 and List 2: "
         + CollectionUtils.intersection(list1, list2));
   }
}

Produzione

Quando esegui il codice, vedrai il seguente output:

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Commons Objects of List 1 and List 2: [A, A, B, B]

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Controllo della sottrazione

Il metodo subtract () di CollectionUtils può essere utilizzato per ottenere la nuova raccolta sottraendo gli oggetti di una raccolta da un'altra.

Dichiarazione

Di seguito è riportata la dichiarazione per org.apache.commons.collections4.CollectionUtils.subtract() metodo -

public static <O> Collection<O> subtract(Iterable<? extends O> a,
   Iterable<? extends O> b)

Parametri

  • a - La raccolta da cui sottrarre non deve essere nulla.

  • b - La raccolta da sottrarre, non deve essere nulla.

Valore di ritorno

Una nuova collezione con i risultati.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.subtract()metodo. Otterremo la sottrazione di due elenchi.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("List 1 - List 2: " + CollectionUtils.subtract(list1, list2));
   }
}

Produzione

Quando esegui il codice sopra, dovresti vedere il seguente output:

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
List 1 - List 2: [A, C]

La classe CollectionUtils della libreria Apache Commons Collections fornisce vari metodi di utilità per operazioni comuni che coprono un'ampia gamma di casi d'uso. Aiuta a evitare di scrivere codice boilerplate. Questa libreria è molto utile prima di jdk 8 poiché funzionalità simili sono ora fornite nell'API Stream di Java 8.

Controllo dell'unione

Il metodo union () di CollectionUtils può essere utilizzato per ottenere l'unione di due raccolte.

Dichiarazione

Di seguito è riportata la dichiarazione per org.apache.commons.collections4.CollectionUtils.union() metodo -

public static <O> Collection<O> union(
   Iterable<? extends O> a, Iterable<? extends O> b)

Parametri

  • a - La prima raccolta, non deve essere nulla.

  • b - La seconda raccolta, non deve essere nulla.

Valore di ritorno

L'unione delle due collezioni.

Esempio

L'esempio seguente mostra l'utilizzo di org.apache.commons.collections4.CollectionUtils.union()metodo. Otterremo l'unione di due liste.

import java.util.Arrays;
import java.util.List;
import org.apache.commons.collections4.CollectionUtils;
public class CollectionUtilsTester {
   public static void main(String[] args) {
      //checking inclusion
      List<String> list1 = Arrays.asList("A","A","A","C","B","B");
      List<String> list2 = Arrays.asList("A","A","B","B");
      System.out.println("List 1: " + list1);
      System.out.println("List 2: " + list2);
      System.out.println("Union of List 1 and List 2: "
         + CollectionUtils.union(list1, list2));
   }
}

Produzione

Questo produce il seguente output:

List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Union of List 1 and List 2: [A, A, A, B, B, C]