Commons-Sammlungen - Objekte filtern

Die CollectionUtils-Klasse der Apache Commons Collections-Bibliothek bietet verschiedene Dienstprogrammmethoden für allgemeine Vorgänge, die eine Vielzahl von Anwendungsfällen abdecken. Es hilft, das Schreiben von Boilerplate-Code zu vermeiden. Diese Bibliothek ist vor jdk 8 sehr nützlich, da ähnliche Funktionen jetzt in der Stream-API von Java 8 bereitgestellt werden.

filter () Methode

Die filter () -Methode von CollectionUtils kann zum Filtern einer Liste verwendet werden, um Objekte zu entfernen, die die durch das übergebene Prädikat bereitgestellte Bedingung nicht erfüllen.

Erklärung

Es folgt die Erklärung für

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

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

Parameter

  • collection - Die Sammlung, aus der die Eingabe abgerufen werden soll, darf nicht null sein.

  • predicate - Das als Filter zu verwendende Prädikat kann null sein.

Rückgabewert

True, wenn die Sammlung durch diesen Aufruf geändert wird, andernfalls false.

Beispiel

Das folgende Beispiel zeigt die Verwendung von org.apache.commons.collections4.CollectionUtils.filter()Methode. Wir filtern eine Liste von Ganzzahlen, um nur gerade Zahlen zu erhalten.

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

Ausgabe

Es wird das folgende Ergebnis erzeugt -

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

filterInverse () -Methode

Die filterInverse () -Methode von CollectionUtils kann verwendet werden, um eine Liste zu filtern, um Objekte zu entfernen, die die Bedingung erfüllen, die durch das übergebene Prädikat bereitgestellt wird.

Erklärung

Es folgt die Erklärung für

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

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

Parameter

  • collection - Die Sammlung, aus der die Eingabe abgerufen werden soll, darf nicht null sein.

  • predicate - Das als Filter zu verwendende Prädikat kann null sein.

Rückgabewert

True, wenn die Sammlung durch diesen Aufruf geändert wird, andernfalls false.

Beispiel

Das folgende Beispiel zeigt die Verwendung von org.apache.commons.collections4.CollectionUtils.filterInverse()Methode. Wir filtern eine Liste von Ganzzahlen, um nur ungerade Zahlen zu erhalten.

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

Ausgabe

Das Ergebnis ist wie folgt:

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