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]