Collections Apache Commons - Guide rapide

Commons Collections améliore le cadre des collections Java. Il fournit plusieurs fonctionnalités pour faciliter la gestion des collections. Il fournit de nombreuses nouvelles interfaces, implémentations et utilitaires.

Les principales caractéristiques des collections communes sont les suivantes -

  • Bag - Les interfaces de sac simplifient les collections, qui ont un nombre multiple de copies de chaque objet.

  • BidiMap - Les interfaces BidiMap fournissent des cartes bidirectionnelles, qui peuvent être utilisées pour rechercher des valeurs en utilisant des clés ou des clés en utilisant des valeurs.

  • MapIterator - L'interface MapIterator fournit une itération simple et facile sur les cartes.

  • Transforming Decorators - Les décorateurs transformateurs peuvent modifier chaque objet d'une collection au fur et à mesure de son ajout à la collection.

  • Composite Collections - Des collections composites sont utilisées, où plusieurs collections doivent être gérées de manière uniforme.

  • Ordered Map - Les cartes ordonnées conservent l'ordre dans lequel les éléments sont ajoutés.

  • Ordered Set - Les ensembles ordonnés conservent l'ordre dans lequel les éléments sont ajoutés.

  • Reference map - La carte de référence permet aux clés / valeurs d'être collectées sous contrôle étroit.

  • Comparator implementations - De nombreuses implémentations de Comparator sont disponibles.

  • Iterator implementations - De nombreuses implémentations Iterator sont disponibles.

  • Adapter Classes - Des classes d'adaptateur sont disponibles pour convertir des tableaux et des énumérations en collections.

  • Utilities- Des utilitaires sont disponibles pour tester ou créer des propriétés typiques de la théorie des ensembles de collections telles que l'union, l'intersection. Prend en charge la fermeture.

Configuration de l'environnement local

Si vous souhaitez toujours configurer votre environnement pour le langage de programmation Java, cette section vous explique comment télécharger et configurer Java sur votre machine. Veuillez suivre les étapes mentionnées ci-dessous pour configurer l'environnement.

Java SE est disponible gratuitement à partir du lien https://www.oracle.com/technetwork/java/archive-139210.html Vous téléchargez donc une version basée sur votre système d'exploitation.

Suivez les instructions pour télécharger Java et exécutez le .exe pour installer Java sur votre machine. Une fois que vous avez installé Java sur votre machine, vous devez définir les variables d'environnement pour qu'elles pointent vers les répertoires d'installation corrects.

Configuration du chemin pour Windows 2000 / XP

Nous supposons que vous avez installé Java dans c:\Program Files\java\jdk directory

  • Cliquez avec le bouton droit sur «Poste de travail» et sélectionnez «Propriétés».

  • Cliquez sur le bouton «Variables d'environnement» sous l'onglet «Avancé».

  • Maintenant, modifiez la variable «Path» afin qu'elle contienne également le chemin vers l'exécutable Java. Exemple, si le chemin est actuellement défini sur'C:\WINDOWS\SYSTEM32', puis changez votre chemin pour lire 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Configuration du chemin pour Windows 95/98 / ME

Nous supposons que vous avez installé Java dans c:\Program Files\java\jdk directory.

  • Editez le fichier 'C: \ autoexec.bat' et ajoutez la ligne suivante à la fin - 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

Configuration du chemin pour Linux, UNIX, Solaris, FreeBSD

La variable d'environnement PATH doit être définie pour pointer vers l'emplacement où les binaires Java ont été installés. Reportez-vous à la documentation de votre shell, si vous rencontrez des difficultés pour cela.

Exemple, si vous utilisez bash comme shell, vous ajouteriez la ligne suivante à la fin de votre '.bashrc: export PATH=/path/to/java:$PATH'

Éditeurs Java populaires

Pour écrire vos programmes Java, vous avez besoin d'un éditeur de texte. Il existe de nombreux IDE sophistiqués disponibles sur le marché. Mais pour l'instant, vous pouvez envisager l'un des éléments suivants -

  • Notepad - Sur une machine Windows, vous pouvez utiliser n'importe quel éditeur de texte simple comme Notepad (recommandé pour ce didacticiel), TextPad.

  • Netbeans - Il s'agit d'un IDE Java open-source et gratuit, qui peut être téléchargé depuis https://netbeans.org.

  • Eclipse - Il s'agit également d'un IDE Java développé par la communauté open-source eclipse et peut être téléchargé depuis https://www.eclipse.org/.

Télécharger l'archive des collections communes

Téléchargez la dernière version du fichier jar Apache Common Collections à partir de commons-collections4-4.1-bin.zip. Au moment de la rédaction de ce tutoriel, nous avons téléchargécommons-collections4-4.1-bin.zip et copié dans C:\>Apache folder.

OS Nom de l'archive
les fenêtres commons-collections4-4.1-bin.zip
Linux commons-collections4-4.1-bin.tar.gz
Mac commons-collections4-4.1-bin.tar.gz

Définir l'environnement de collections communes Apache

Met le APACHE_HOMEvariable d'environnement pour pointer vers l'emplacement du répertoire de base où le fichier jar Apache est stocké sur votre machine. En supposant que nous avons extrait commons-collections4-4.1-bin.zip dans le dossier Apache sur divers systèmes d'exploitation comme suit -

OS Nom de l'archive
les fenêtres Définissez la variable d'environnement APACHE_HOME sur C: \ Apache
Linux export APACHE_HOME = / usr / local / Apache
Mac export APACHE_HOME = / Bibliothèque / Apache

Définir la variable CLASSPATH

Met le CLASSPATHvariable d'environnement pour pointer vers l'emplacement du fichier jar Common Collections. En supposant que vous ayez stocké commons-collections4-4.1-bin.zip dans le dossier Apache sur divers systèmes d'exploitation comme suit -

OS Production
les fenêtres Définissez la variable d'environnement CLASSPATH sur% 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 :.

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") renverra 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 de sac 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) Retirez 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]

De nouvelles interfaces sont ajoutées pour prendre en charge la carte bidirectionnelle. En utilisant une carte bidirectionnelle, une clé peut être recherchée à l'aide de la valeur et la valeur peut être recherchée à l'aide de la clé facilement.

Déclaration d'interface

Voici la déclaration pour org.apache.commons.collections4.BidiMap<K,V> interface -

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

Méthodes

Les méthodes pour l'interface BidiMap sont les suivantes -

N ° Sr. Méthode et description
1

K getKey(Object value)

Obtient la clé actuellement mappée à la valeur spécifiée.

2

BidiMap<V,K> inverseBidiMap()

Obtient une vue de cette carte où les clés et les valeurs sont inversées.

3

V put(K key, V value)

Place la paire clé-valeur dans la carte, en remplaçant toute paire précédente.

4

K removeValue(Object value)

Supprime la paire clé-valeur actuellement mappée à la valeur spécifiée (opération facultative).

5

Set<V> values()

Renvoie une vue d'ensemble des valeurs contenues dans cette carte.

Méthodes héritées

Cette interface hérite des méthodes des interfaces suivantes -

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

Exemple d'interface BidiMap

Un exemple de BidiMapTester.java est le suivant -

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

Production

Lorsque vous exécutez le code, vous verrez la sortie suivante -

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

L'interface JDK Map est assez difficile à itérer car l'itération doit être effectuée sur EntrySet ou sur les objets KeySet. MapIterator fournit une itération simple sur Map. L'exemple suivant illustre la même chose.

Exemple d'interface MapIterator

Un exemple pour MapIteratorTester.java est le suivant -

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

Production

La sortie est indiquée ci-dessous -

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 est une nouvelle interface pour les cartes afin de conserver l'ordre dans lequel les éléments sont ajoutés. LinkedMap et ListOrderedMap sont deux implémentations disponibles. Cette interface prend en charge l'itérateur de Map et permet une itération dans les deux sens vers l'avant ou vers l'arrière dans une Map. L'exemple suivant illustre la même chose.

Exemple d'interface MapIterator

Un exemple de OrderedMapTester.java est donné ci-dessous -

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

Production

Le résultat sera le suivant -

One
Two
Three

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérifier les éléments non nuls

La méthode addIgnoreNull () de CollectionUtils peut être utilisée pour s'assurer que seules les valeurs non nulles sont ajoutées à la collection.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.addIgnoreNull() méthode -

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

Paramètres

  • collection - La collection à ajouter ne doit pas être nulle.

  • object - L'objet à ajouter, s'il est nul, il ne sera pas ajouté.

Valeur de retour

Vrai si la collection a changé.

Exception

  • NullPointerException - Si la collection est nulle.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.addIgnoreNull()méthode. Nous essayons d'ajouter une valeur nulle et un exemple de valeur non nulle.

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

Production

La sortie est mentionnée ci-dessous -

[a]
Null value is not present

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Fusion de deux listes triées

La méthode collate () de CollectionUtils peut être utilisée pour fusionner deux listes déjà triées.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.collate() méthode -

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

Paramètres

  • a - La première collection ne doit pas être nulle.

  • b - La deuxième collection ne doit pas être nulle.

Valeur de retour

Une nouvelle liste triée, contenant les éléments de la collection a et b.

Exception

  • NullPointerException - Si l'une ou l'autre des collections est nulle.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.collate()méthode. Nous fusionnerons deux listes triées, puis imprimerons la liste fusionnée et triée.

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

Production

La sortie est la suivante -

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

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Transformer une liste

La méthode collect () de CollectionUtils peut être utilisée pour transformer une liste d'un type d'objets en liste de différents types d'objets.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.collect() méthode -

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

Paramètres

  • inputCollection - La collection à partir de laquelle obtenir l'entrée peut ne pas être nulle.

  • Transformer - Le transformateur à utiliser peut être nul.

Valeur de retour

Le résultat transformé (nouvelle liste).

Exception

  • NullPointerException - Si la collection d'entrée est nulle.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.collect()méthode. Nous transformerons une liste de chaînes en liste d'entiers en analysant la valeur entière de 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);
   }
}

Production

Lorsque vous utilisez le code, vous obtiendrez le code suivant -

[1, 2, 3]

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

filter () méthode

filter () de CollectionUtils peut être utilisée pour filtrer une liste afin de supprimer les objets qui ne satisfont pas à la condition fournie par le prédicat passé.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.filter() méthode -

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

Paramètres

  • collection - La collection à partir de laquelle obtenir l'entrée peut ne pas être nulle.

  • predicate - Le prédicat à utiliser comme filtre peut être nul.

Valeur de retour

True si la collection est modifiée par cet appel, false dans le cas contraire.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.filter()méthode. Nous filtrerons une liste d'entiers pour obtenir uniquement des nombres pairs.

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

Production

Il produira le résultat suivant -

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

filterInverse (), méthode

La méthode filterInverse () de CollectionUtils peut être utilisée pour filtrer une liste afin de supprimer des objets, qui satisfont la condition fournie par le prédicat passé.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.filterInverse() méthode -

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

Paramètres

  • collection - La collection à partir de laquelle obtenir l'entrée peut ne pas être nulle.

  • predicate - Le prédicat à utiliser comme filtre peut être nul.

Valeur de retour

True si la collection est modifiée par cet appel, false dans le cas contraire.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.filterInverse()méthode. Nous filtrerons une liste d'entiers pour obtenir uniquement des nombres impairs.

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

Production

Le résultat est comme indiqué ci-dessous -

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

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérification de la liste non vide

La méthode isNotEmpty () de CollectionUtils peut être utilisée pour vérifier si une liste n'est pas vide sans se soucier de la liste nulle. Il n'est donc pas nécessaire de placer une vérification nulle partout avant de vérifier la taille de la liste.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.isNotEmpty() méthode -

public static boolean isNotEmpty(Collection<?> coll)

Paramètres

  • coll - La collection à vérifier peut être nulle.

Valeur de retour

Vrai si non nul et non vide.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.isNotEmpty()méthode. Nous vérifierons qu'une liste est vide ou non.

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

Production

La sortie est donnée ci-dessous -

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

Vérification de la liste vide

La méthode isEmpty () de CollectionUtils peut être utilisée pour vérifier si une liste est vide sans se soucier de la liste nulle. Il n'est donc pas nécessaire de placer une vérification nulle partout avant de vérifier la taille de la liste.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.isEmpty() méthode -

public static boolean isEmpty(Collection<?> coll)

Paramètres

  • coll - La collection à vérifier peut être nulle.

Valeur de retour

Vrai si vide ou nul.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.isEmpty()méthode. Nous vérifierons qu'une liste est vide ou non.

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

Production

Ci-dessous est la sortie du code -

Empty List Check: true
Empty List Check: true

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérification de la sous-liste

La méthode isSubCollection () de CollectionUtils peut être utilisée pour vérifier si une collection contient la collection donnée ou non.

Déclaration

Voici la déclaration pour

org.apache.commons.collections4.CollectionUtils.isSubCollection() méthode -

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

Paramètres

  • a - La première (sous) collection ne doit pas être nulle.

  • b - La deuxième (super) collection ne doit pas être nulle.

Valeur de retour

Vrai si et seulement si a est une sous-collection de b.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.isSubCollection()méthode. Nous allons vérifier qu'une liste fait partie d'une autre liste ou non.

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

Production

Vous recevrez la sortie suivante -

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 de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérification de l'intersection

La méthode intersection () de CollectionUtils peut être utilisée pour obtenir les objets communs entre deux collections (intersection).

Déclaration

Voici la déclaration pour org.apache.commons.collections4.CollectionUtils.intersection() méthode -

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

Paramètres

  • a - La première (sous) collection ne doit pas être nulle.

  • b - La deuxième (super) collection ne doit pas être nulle.

Valeur de retour

L'intersection des deux collections.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.intersection()méthode. Nous obtiendrons l'intersection de deux listes.

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

Production

Lorsque vous exécutez le code, vous verrez la sortie suivante -

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 de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérification de la sousstraction

La méthode soustract () de CollectionUtils peut être utilisée pour obtenir la nouvelle collection en soustrayant les objets d'une collection de l'autre.

Déclaration

Voici la déclaration pour org.apache.commons.collections4.CollectionUtils.subtract() méthode -

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

Paramètres

  • a - La collection à soustraire ne doit pas être nulle.

  • b - La collection à soustraire ne doit pas être nulle.

Valeur de retour

Une nouvelle collection avec les résultats.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.subtract()méthode. Nous obtiendrons la soustraction de deux listes.

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

Production

Lorsque vous exécutez le code ci-dessus, vous devriez voir la sortie suivante -

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

La classe CollectionUtils de la bibliothèque Apache Commons Collections fournit diverses méthodes utilitaires pour les opérations courantes couvrant un large éventail de cas d'utilisation. Cela permet d'éviter d'écrire du code standard. Cette bibliothèque est très utile avant jdk 8 car des fonctionnalités similaires sont désormais fournies dans l'API Stream de Java 8.

Vérification de l'union

La méthode union () de CollectionUtils peut être utilisée pour obtenir l'union de deux collections.

Déclaration

Voici la déclaration pour org.apache.commons.collections4.CollectionUtils.union() méthode -

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

Paramètres

  • a - La première collection ne doit pas être nulle.

  • b - La deuxième collection ne doit pas être nulle.

Valeur de retour

L'union des deux collections.

Exemple

L'exemple suivant montre l'utilisation de org.apache.commons.collections4.CollectionUtils.union()méthode. Nous obtiendrons l'union de deux listes.

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

Production

Cela produit la sortie suivante -

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]