Kolekcje Apache Commons - szybki przewodnik

Commons Collections rozszerza środowisko Java Collections Framework. Udostępnia kilka funkcji ułatwiających obsługę kolekcji. Zapewnia wiele nowych interfejsów, implementacji i narzędzi.

Główne cechy Commons Kolekcje są następujące -

  • Bag - Interfejsy torby upraszczają kolekcje, które mają wiele kopii każdego przedmiotu.

  • BidiMap - Interfejsy Bi-DiMap zapewniają mapy dwukierunkowe, których można używać do wyszukiwania wartości za pomocą kluczy lub kluczy za pomocą wartości.

  • MapIterator - Interfejs MapIterator zapewnia prostą i łatwą iterację na mapach.

  • Transforming Decorators - Przekształcanie dekoratorów może zmieniać każdy przedmiot kolekcji w momencie dodawania go do kolekcji.

  • Composite Collections - Kolekcje złożone są używane, gdy wiele kolekcji musi być obsługiwanych jednolicie.

  • Ordered Map - Uporządkowane mapy zachowują kolejność, w jakiej dodawane są elementy.

  • Ordered Set - Zamówione zestawy zachowują kolejność, w jakiej dodawane są elementy.

  • Reference map - Mapa referencyjna umożliwia zbieranie kluczy / wartości pod ścisłą kontrolą.

  • Comparator implementations - Dostępnych jest wiele implementacji komparatora.

  • Iterator implementations - Dostępnych jest wiele implementacji iteratorów.

  • Adapter Classes - Klasy adapterów są dostępne do konwersji tablic i wyliczeń na kolekcje.

  • Utilities- Dostępne są narzędzia do testowania lub tworzenia typowych właściwości zbiorów w teorii mnogości, takich jak suma, przecięcie. Obsługuje zamknięcie.

Konfiguracja środowiska lokalnego

Jeśli nadal chcesz skonfigurować swoje środowisko pod kątem języka programowania Java, w tej sekcji omówiono sposób pobierania i konfigurowania środowiska Java na komputerze. Wykonaj poniższe czynności, aby skonfigurować środowisko.

Java SE jest dostępna bezpłatnie pod linkiem https://www.oracle.com/technetwork/java/archive-139210.html Więc pobierasz wersję opartą na systemie operacyjnym.

Postępuj zgodnie z instrukcjami, aby pobrać Javę i uruchomić plik .exe, aby zainstalować Javę na swoim komputerze. Gdy już zainstalujesz Javę na swoim komputerze, będziesz musiał ustawić zmienne środowiskowe, aby wskazywały na prawidłowe katalogi instalacyjne.

Konfigurowanie ścieżki dla Windows 2000 / XP

Zakładamy, że masz zainstalowaną Javę w c:\Program Files\java\jdk directory

  • Kliknij prawym przyciskiem myszy „Mój komputer” i wybierz „Właściwości”.

  • Kliknij przycisk „Zmienne środowiskowe” na karcie „Zaawansowane”.

  • Teraz zmień zmienną „Path”, tak aby zawierała również ścieżkę do pliku wykonywalnego Java. Na przykład, jeśli ścieżka jest obecnie ustawiona na'C:\WINDOWS\SYSTEM32', a następnie zmień ścieżkę czytania 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.

Konfigurowanie ścieżki dla Windows 95/98 / ME

Zakładamy, że masz zainstalowaną Javę w c:\Program Files\java\jdk directory.

  • Edytuj plik „C: \ autoexec.bat” i dodaj następujący wiersz na końcu - 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'

Konfigurowanie ścieżki dla systemów Linux, UNIX, Solaris, FreeBSD

Zmienna środowiskowa PATH powinna wskazywać miejsce, w którym zostały zainstalowane pliki binarne Java. Zajrzyj do dokumentacji powłoki, jeśli masz z tym problem.

Na przykład, jeśli używasz basha jako powłoki, to dodasz następujący wiersz na końcu swojego '.bashrc: export PATH=/path/to/java:$PATH'

Popularne edytory Java

Do pisania programów w języku Java potrzebny jest edytor tekstu. Na rynku dostępnych jest wiele wyrafinowanych IDE. Ale na razie możesz rozważyć jedną z następujących -

  • Notepad - Na komputerze z systemem Windows możesz użyć dowolnego prostego edytora tekstu, takiego jak Notatnik (zalecany w tym samouczku), TextPad.

  • Netbeans - Jest to środowisko Java IDE o otwartym kodzie źródłowym i bezpłatne, z którego można pobrać https://netbeans.org.

  • Eclipse - Jest to również środowisko Java IDE opracowane przez społeczność open source eclipse i można je pobrać z witryny https://www.eclipse.org/.

Pobierz archiwum wspólnych zbiorów

Pobierz najnowszą wersję pliku jar Apache Common Collections ze strony commons-collections4-4.1-bin.zip. W chwili pisania tego samouczka pobraliśmycommons-collections4-4.1-bin.zip i skopiowałem go do C:\>Apache folder.

OS Nazwa archiwum
Windows commons-collections4-4.1-bin.zip
Linux commons-collections4-4.1-bin.tar.gz
Prochowiec commons-collections4-4.1-bin.tar.gz

Ustaw środowisko wspólnych kolekcji Apache

Ustaw APACHE_HOMEzmienną środowiskową, aby wskazywała lokalizację katalogu podstawowego, w którym na komputerze jest przechowywany plik Apache jar. Zakładając, że wyodrębniliśmy commons-collections4-4.1-bin.zip w folderze Apache w różnych systemach operacyjnych w następujący sposób -

OS Nazwa archiwum
Windows Ustaw zmienną środowiskową APACHE_HOME na C: \ Apache
Linux eksportuj APACHE_HOME = / usr / local / Apache
Prochowiec eksportuj APACHE_HOME = / Library / Apache

Ustaw zmienną CLASSPATH

Ustaw CLASSPATHzmienna środowiskowa, aby wskazywała lokalizację jar kolekcji wspólnych. Zakładając, że masz zapisane commons-collections4-4.1-bin.zip w folderze Apache w różnych systemach operacyjnych w następujący sposób -

OS Wynik
Windows Ustaw zmienną środowiskową CLASSPATH na% CLASSPATH%;% APACHE_HOME% \ commons-collections4-4.1-bin.jar;.;
Linux export CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.
Prochowiec export CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.

Nowe interfejsy są dodawane do worków obsługujących. Torba definiuje kolekcję, która liczy, ile razy obiekt pojawia się w kolekcji. Na przykład, jeśli Bag zawiera {a, a, b, c}, to getCount ("a") zwróci 2, podczas gdy uniqueSet () zwróci unikalne wartości.

Deklaracja interfejsu

Poniżej znajduje się deklaracja interfejsu org.apache.commons.collections4.Bag <E> -

public interface Bag<E>
   extends Collection<E>

Metody

Metody wnioskowania worka są następujące -

Sr.No. Metoda i opis
1

boolean add(E object)

(Naruszenie) Dodaje jedną kopię określonego obiektu do torby.

2

boolean add(E object, int nCopies)

Dodaje kopie nCopies określonego obiektu do Bag.

3

boolean containsAll(Collection<?> coll)

(Naruszenie) Zwraca wartość true, jeśli worek zawiera wszystkie elementy z danej kolekcji, z uwzględnieniem liczności.

4

int getCount(Object object)

Zwraca liczbę wystąpień (liczność) danego obiektu aktualnie znajdującego się w worku.

5

Iterator<E> iterator()

Zwraca Iterator dla całego zestawu elementów, w tym kopii ze względu na liczność.

6

boolean remove(Object object)

(Naruszenie) Usuwa wszystkie wystąpienia danego przedmiotu z torby.

7

boolean remove(Object object, int nCopies)

Usuwa kopie nCopies określonego obiektu z Bag.

8

boolean removeAll(Collection<?> coll)

(Naruszenie) Usuń wszystkie elementy reprezentowane w danej kolekcji, przestrzegając liczności.

9

boolean retainAll(Collection<?> coll)

(Naruszenie) Usuń wszystkich członków worka, których nie ma w danej kolekcji, z poszanowaniem liczności.

10

int size()

Zwraca całkowitą liczbę elementów w koszyku we wszystkich typach.

11

Set<E> uniqueSet()

Zwraca zestaw unikalnych elementów w torbie.

Dziedziczone metody

Ten interfejs dziedziczy metody z następującego interfejsu -

  • java.util.Collection

Przykład interfejsu torby

Przykład BagTester.java jest następujący -

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

Wynik

Zobaczysz następujący wynik -

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]

Dodano nowe interfejsy do obsługi map dwukierunkowych. Korzystając z mapy dwukierunkowej, klucz można wyszukiwać za pomocą wartości, a wartość można łatwo wyszukiwać za pomocą klucza.

Deklaracja interfejsu

Poniżej znajduje się deklaracja dla org.apache.commons.collections4.BidiMap<K,V> interfejs -

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

Metody

Metody interfejsu BidiMap są następujące -

Sr.No. Metoda i opis
1

K getKey(Object value)

Pobiera klucz, który jest aktualnie zamapowany na określoną wartość.

2

BidiMap<V,K> inverseBidiMap()

Pobiera widok tej mapy, w którym klucze i wartości są odwrócone.

3

V put(K key, V value)

Wstawia parę klucz-wartość do mapy, zastępując wszystkie poprzednie pary.

4

K removeValue(Object value)

Usuwa parę klucz-wartość, która jest obecnie zamapowana na określoną wartość (operacja opcjonalna).

5

Set<V> values()

Zwraca widok zestawu wartości zawartych w tej mapie.

Dziedziczone metody

Ten interfejs dziedziczy metody z następujących interfejsów -

  • org.apache.commons.collections4.Get

  • org.apache.commons.collections4.IterableGet

  • org.apache.commons.collections4.Put

  • java.util.Map

Przykład interfejsu BidiMap

Przykład pliku BidiMapTester.java jest następujący -

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

Wynik

Po uruchomieniu kodu zobaczysz następujące dane wyjściowe -

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

Interfejs JDK Map jest dość trudny do iteracji, ponieważ iteracja jest wykonywana na EntrySet lub na obiektach KeySet. MapIterator zapewnia prostą iterację po Map. Poniższy przykład ilustruje to samo.

Przykład interfejsu MapIterator

Przykład dla MapIteratorTester.java jest następujący -

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

Wynik

Dane wyjściowe podano poniżej -

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 to nowy interfejs dla map, który zachowuje kolejność dodawania elementów. LinkedMap i ListOrderedMap to dwie dostępne implementacje. Ten interfejs obsługuje iterator Map i umożliwia iterację w obu kierunkach do przodu lub do tyłu na mapie. Poniższy przykład ilustruje to samo.

Przykład interfejsu MapIterator

Przykład OrderedMapTester.java jest przedstawiony poniżej -

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

Wynik

Wynik będzie następujący -

One
Two
Three

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdź, czy elementy nie są puste

addIgnoreNull () metody CollectionUtils może służyć do zapewnienia, że ​​do kolekcji są dodawane tylko wartości inne niż null.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • collection - Kolekcja do dodania nie może być pusta.

  • object - Obiekt do dodania, jeśli ma wartość NULL, nie zostanie dodany.

Wartość zwracana

Prawda, jeśli kolekcja uległa zmianie.

Wyjątek

  • NullPointerException - Jeśli kolekcja jest zerowa.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.addIgnoreNull()metoda. Próbujemy dodać wartość null i przykładową wartość inną niż null.

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

Wynik

Dane wyjściowe są wymienione poniżej -

[a]
Null value is not present

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Scalanie dwóch posortowanych list

collate () metody CollectionUtils może służyć do scalania dwóch już posortowanych list.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • a - Pierwsza kolekcja nie może być zerowa.

  • b - Druga kolekcja nie może być zerowa.

Wartość zwracana

Nowa posortowana lista zawierająca elementy Collection a i b.

Wyjątek

  • NullPointerException - Jeśli któraś z kolekcji jest pusta.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.collate()metoda. Połączymy dwie posortowane listy, a następnie wydrukujemy scaloną i posortowaną listę.

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

Wynik

Dane wyjściowe są następujące -

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

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Przekształcanie listy

collect () metody CollectionUtils może służyć do przekształcania listy obiektów jednego typu w listę obiektów innego typu.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • inputCollection - Kolekcja, z której mają zostać pobrane dane wejściowe, nie może mieć wartości NULL.

  • Transformer - Używany transformator może być zerowy.

Wartość zwracana

Przekształcony wynik (nowa lista).

Wyjątek

  • NullPointerException - Jeśli kolekcja danych wejściowych ma wartość null.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.collect()metoda. Przekształcimy listę ciągów w listę liczb całkowitych, analizując wartość całkowitą z ciągu.

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

Wynik

Kiedy użyjesz kodu, otrzymasz następujący kod -

[1, 2, 3]

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

filter () metoda

filter () metody CollectionUtils może służyć do filtrowania listy w celu usunięcia obiektów, które nie spełniają warunku dostarczonego przez przekazany predykat.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • collection - Kolekcja, z której mają zostać pobrane dane wejściowe, nie może mieć wartości NULL.

  • predicate - Predykat używany jako filtr może być pusty.

Wartość zwracana

Prawda, jeśli kolekcja jest modyfikowana przez to wywołanie, fałsz w przeciwnym razie.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.filter()metoda. Przefiltrujemy listę liczb całkowitych, aby uzyskać tylko liczby parzyste.

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

Wynik

To da następujący wynik -

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

filterInverse (), metoda

filterInverse () metody CollectionUtils może służyć do filtrowania listy w celu usunięcia obiektów, które spełniają warunek dostarczony przez przekazany predykat.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • collection - Kolekcja, z której mają zostać pobrane dane wejściowe, nie może mieć wartości NULL.

  • predicate - Predykat używany jako filtr może być pusty.

Wartość zwracana

Prawda, jeśli kolekcja jest modyfikowana przez to wywołanie, fałsz w przeciwnym razie.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.filterInverse()metoda. Przefiltrujemy listę liczb całkowitych, aby uzyskać tylko liczby nieparzyste.

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

Wynik

Wynik jest taki, jak podano poniżej -

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

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdzanie niepustej listy

isNotEmpty () metody CollectionUtils może służyć do sprawdzenia, czy lista nie jest pusta, bez martwienia się o listę pustą. Dlatego nie jest wymagane umieszczanie wszędzie sprawdzenia zerowego przed sprawdzeniem rozmiaru listy.

Deklaracja

Poniżej znajduje się deklaracja dla

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

public static boolean isNotEmpty(Collection<?> coll)

Parametry

  • coll - Kolekcja do sprawdzenia może być zerowa.

Wartość zwracana

Prawda, jeśli nie jest pusta i nie jest pusta.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.isNotEmpty()metoda. Sprawdzimy, czy lista jest pusta, czy nie.

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

Wynik

Dane wyjściowe podano poniżej -

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

Sprawdzam pustą listę

isEmpty () metody CollectionUtils może służyć do sprawdzenia, czy lista jest pusta, bez martwienia się o listę pustą. Dlatego nie jest wymagane umieszczanie wszędzie sprawdzenia zerowego przed sprawdzeniem rozmiaru listy.

Deklaracja

Poniżej znajduje się deklaracja dla

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

public static boolean isEmpty(Collection<?> coll)

Parametry

  • coll - Kolekcja do sprawdzenia może być zerowa.

Wartość zwracana

Prawda, jeśli jest pusta lub zerowa.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.isEmpty()metoda. Sprawdzimy, czy lista jest pusta, czy nie.

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

Wynik

Poniżej podano wynik kodu -

Empty List Check: true
Empty List Check: true

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdzam podlistę

isSubCollection () metody CollectionUtils może służyć do sprawdzenia, czy dana kolekcja zawiera daną kolekcję, czy nie.

Deklaracja

Poniżej znajduje się deklaracja dla

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

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

Parametry

  • a - Pierwsza (pod) kolekcja nie może być pusta.

  • b - Druga (super) kolekcja nie może być zerowa.

Wartość zwracana

Prawda wtedy i tylko wtedy, gdy a jest kolekcją podrzędną b.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.isSubCollection()metoda. Sprawdzimy, czy lista jest częścią innej listy, czy nie.

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

Wynik

Otrzymasz następujący wynik -

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

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdzam skrzyżowanie

intersection () metody CollectionUtils może służyć do pobierania wspólnych obiektów między dwiema kolekcjami (intersection).

Deklaracja

Poniżej znajduje się deklaracja dla org.apache.commons.collections4.CollectionUtils.intersection() metoda -

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

Parametry

  • a - Pierwsza (pod) kolekcja nie może być pusta.

  • b - Druga (super) kolekcja nie może być zerowa.

Wartość zwracana

Przecięcie dwóch kolekcji.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.intersection()metoda. Otrzymamy przecięcie dwóch list.

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

Wynik

Po uruchomieniu kodu zobaczysz następujące dane wyjściowe -

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]

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdzanie odejmowania

subtract () metody CollectionUtils może służyć do pobierania nowej kolekcji przez odejmowanie obiektów jednej kolekcji od drugiej.

Deklaracja

Poniżej znajduje się deklaracja dla org.apache.commons.collections4.CollectionUtils.subtract() metoda -

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

Parametry

  • a - Kolekcja do odjęcia nie może być pusta.

  • b - Kolekcja do odjęcia nie może być zerowa.

Wartość zwracana

Nowa kolekcja z wynikami.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.subtract()metoda. Otrzymamy odejmowanie dwóch list.

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

Wynik

Po wykonaniu powyższego kodu powinieneś zobaczyć następujące dane wyjściowe -

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

Klasa CollectionUtils z biblioteki Apache Commons Collections udostępnia różne metody narzędziowe do typowych operacji obejmujących szeroki zakres przypadków użycia. Pomaga to uniknąć pisania kodu standardowego. Ta biblioteka jest bardzo przydatna przed jdk 8, ponieważ podobne funkcje są teraz dostępne w Stream API Java 8.

Sprawdzanie związku

union () metody CollectionUtils, aby uzyskać sumę dwóch kolekcji.

Deklaracja

Poniżej znajduje się deklaracja dla org.apache.commons.collections4.CollectionUtils.union() metoda -

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

Parametry

  • a - Pierwsza kolekcja nie może być zerowa.

  • b - Druga kolekcja nie może być zerowa.

Wartość zwracana

Połączenie dwóch kolekcji.

Przykład

Poniższy przykład pokazuje użycie org.apache.commons.collections4.CollectionUtils.union()metoda. Otrzymamy połączenie dwóch list.

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

Wynik

Daje to następujący wynik -

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]