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]