Коллекции Apache Commons - Краткое руководство
Коллекции Commons дополняют платформу коллекций Java. Он предоставляет несколько функций, упрощающих работу с коллекциями. Он предоставляет множество новых интерфейсов, реализаций и утилит.
Основные особенности коллекций Commons следующие:
Bag - Интерфейсы мешков упрощают коллекции, в которых есть несколько копий каждого объекта.
BidiMap - Интерфейсы BidiMap предоставляют двунаправленные карты, которые можно использовать для поиска значений с помощью ключей или ключей с использованием значений.
MapIterator - Интерфейс MapIterator обеспечивает простой и легкий переход по картам.
Transforming Decorators - Преобразовывающие декораторы могут изменять каждый объект коллекции, когда он добавляется в коллекцию.
Composite Collections - Используются составные коллекции, когда требуется, чтобы несколько коллекций обрабатывались единообразно.
Ordered Map - Упорядоченные карты сохраняют порядок, в котором добавляются элементы.
Ordered Set - Упорядоченные наборы сохраняют порядок, в котором добавляются элементы.
Reference map - Справочная карта позволяет парам "ключ-значение" собирать мусор под тщательным контролем.
Comparator implementations - Доступно множество реализаций компаратора.
Iterator implementations - Доступно множество реализаций Iterator.
Adapter Classes - Доступны классы адаптеров для преобразования массивов и перечислений в коллекции.
Utilities- Доступны утилиты для тестирования или создания типичных теоретико-множественных свойств коллекций, таких как объединение, пересечение. Поддерживает закрытие.
Настройка локальной среды
Если вы все еще хотите настроить свою среду для языка программирования Java, то в этом разделе вы узнаете, как загрузить и установить Java на свой компьютер. Пожалуйста, следуйте инструкциям ниже, чтобы настроить среду.
Java SE находится в свободном доступе по ссылке https://www.oracle.com/technetwork/java/archive-139210.html Итак, вы загружаете версию, основанную на вашей операционной системе.
Следуйте инструкциям, чтобы загрузить Java и запустить .exe, чтобы установить Java на свой компьютер. После того, как вы установили Java на свой компьютер, вам нужно будет установить переменные среды, чтобы они указывали на правильные каталоги установки.
Настройка пути для Windows 2000 / XP
Мы предполагаем, что вы установили Java в c:\Program Files\java\jdk directory
Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».
Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».
Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если путь в настоящее время установлен на'C:\WINDOWS\SYSTEM32', затем измените свой путь на чтение 'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'.
Настройка пути для Windows 95/98 / ME
Мы предполагаем, что вы установили Java в c:\Program Files\java\jdk directory.
Отредактируйте файл 'C: \ autoexec.bat' и добавьте в конец следующую строку - 'SET PATH=%PATH%;C:\Program Files\java\jdk\bin'
Настройка пути для Linux, UNIX, Solaris, FreeBSD
Переменная среды PATH должна указывать на то место, где были установлены двоичные файлы Java. Обратитесь к документации вашей оболочки, если у вас возникли проблемы с этим.
Например, если вы используете bash в качестве оболочки, вы должны добавить следующую строку в конец вашего '.bashrc: export PATH=/path/to/java:$PATH'
Популярные редакторы Java
Для написания программ на Java вам понадобится текстовый редактор. На рынке доступно множество сложных IDE. Но пока вы можете рассмотреть одно из следующих:
Notepad - На компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.
Netbeans - Это Java IDE с открытым исходным кодом и бесплатная, которую можно загрузить с https://netbeans.org.
Eclipse - Это также Java IDE, разработанная сообществом разработчиков открытого исходного кода eclipse, которую можно загрузить с https://www.eclipse.org/.
Скачать архив общих коллекций
Загрузите последнюю версию jar-файла общих коллекций Apache с сайта commons-collections4-4.1-bin.zip. На момент написания этого руководства мы загрузилиcommons-collections4-4.1-bin.zip и скопировал это в C:\>Apache folder.
Операционные системы | Имя архива |
---|---|
Windows | commons-collections4-4.1-bin.zip |
Linux | общие-коллекции4-4.1-bin.tar.gz |
Mac | общие-коллекции4-4.1-bin.tar.gz |
Установить среду общих коллекций Apache
Установить APACHE_HOMEпеременная среды, указывающая на расположение базового каталога, в котором на вашем компьютере хранится Apache jar. Предположим, мы извлекли commons-collections4-4.1-bin.zip в папку Apache в различных операционных системах следующим образом:
Операционные системы | Имя архива |
---|---|
Windows | Установите для переменной среды APACHE_HOME значение C: \ Apache |
Linux | экспорт APACHE_HOME = / usr / local / Apache |
Mac | экспорт APACHE_HOME = / Библиотека / Apache |
Установить переменную CLASSPATH
Установить CLASSPATHпеременная среды, указывающая на расположение jar-файла Common Collections. Предполагая, что вы сохранили commons-collections4-4.1-bin.zip в папке Apache в различных операционных системах следующим образом:
Операционные системы | Выход |
---|---|
Windows | Установите для переменной среды CLASSPATH значение% CLASSPATH%;% APACHE_HOME% \ commons-collections4-4.1-bin.jar;.; |
Linux | экспорт CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :. |
Mac | экспорт CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :. |
Добавлены новые интерфейсы к сумкам опор. Сумка определяет коллекцию, которая подсчитывает количество раз, когда объект появляется в коллекции. Например, если Bag содержит {a, a, b, c}, то getCount ("a") вернет 2, а uniqueSet () вернет уникальные значения.
Объявление интерфейса
Ниже приводится объявление для интерфейса org.apache.commons.collections4.Bag <E> -
public interface Bag<E>
extends Collection<E>
Методы
Методы вывода пакетов следующие:
Sr. No. | Метод и описание |
---|---|
1 | boolean add(E object) (Нарушение) Добавляет одну копию указанного объекта в Сумку. |
2 | boolean add(E object, int nCopies) Добавляет nCopies копии указанного объекта в Сумку. |
3 | boolean containsAll(Collection<?> coll) (Нарушение) Возвращает истину, если сумка содержит все элементы данной коллекции с учетом мощности. |
4 | int getCount(Object object) Возвращает количество вхождений (количество элементов) данного объекта в настоящее время в сумке. |
5 | Iterator<E> iterator() Возвращает итератор по всему набору членов, включая копии в зависимости от количества элементов. |
6 | boolean remove(Object object) (Нарушение) Удаляет все вхождения данного объекта из сумки. |
7 | boolean remove(Object object, int nCopies) Удаляет копии nCopies указанного объекта из мешка. |
8 | boolean removeAll(Collection<?> coll) (Нарушение) Удалить все элементы, представленные в данной коллекции, с учетом количества элементов. |
9 | boolean retainAll(Collection<?> coll) (Нарушение) Удалите из сумки все элементы, не входящие в данную коллекцию, с учетом мощности. |
10 | int size() Возвращает общее количество предметов в сумке для всех типов. |
11 | Set<E> uniqueSet() Возвращает набор уникальных элементов в сумку. |
Унаследованные методы
Этот интерфейс наследует методы из следующего интерфейса -
- java.util.Collection
Пример интерфейса сумки
Пример BagTester.java выглядит следующим образом:
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());
}
}
Выход
Вы увидите следующий вывод -
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]
Добавлены новые интерфейсы для поддержки двунаправленной карты. Используя двунаправленную карту, ключ можно искать с помощью значения, а значение можно легко искать с помощью ключа.
Объявление интерфейса
Ниже приводится декларация для org.apache.commons.collections4.BidiMap<K,V> интерфейс -
public interface BidiMap<K,V>
extends IterableMap<K,V>
Методы
Методы интерфейса BidiMap следующие:
Sr. No. | Метод и описание |
---|---|
1 | K getKey(Object value) Получает ключ, который в настоящее время сопоставлен с указанным значением. |
2 | BidiMap<V,K> inverseBidiMap() Получает представление этой карты, где ключи и значения меняются местами. |
3 | V put(K key, V value) Помещает пару "ключ-значение" на карту, заменяя любую предыдущую пару. |
4 | K removeValue(Object value) Удаляет пару "ключ-значение", которая в настоящее время сопоставлена указанному значению (необязательная операция). |
5 | Set<V> values() Возвращает набор значений, содержащихся в этой карте. |
Унаследованные методы
Этот интерфейс наследует методы от следующих интерфейсов -
org.apache.commons.collections4.Get
org.apache.commons.collections4.IterableGet
org.apache.commons.collections4.Put
java.util.Map
Пример интерфейса BidiMap
Пример BidiMapTester.java выглядит следующим образом:
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);
}
}
Выход
Когда вы запустите код, вы увидите следующий вывод -
1
One
Original Map: {One=1, Three=3, Two=2}
Modified Map: {Three=3, Two=2}
Inversed Map: {2=Two, 3=Three}
Интерфейс JDK Map довольно сложно повторять, поскольку итерация должна выполняться над EntrySet или объектами KeySet. MapIterator обеспечивает простую итерацию над Map. Следующий пример иллюстрирует то же самое.
Пример интерфейса MapIterator
Пример для MapIteratorTester.java выглядит следующим образом:
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);
}
}
Выход
Результат указан ниже -
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 - это новый интерфейс для карт, сохраняющий порядок добавления элементов. LinkedMap и ListOrderedMap - две доступные реализации. Этот интерфейс поддерживает итератор Map и позволяет выполнять итерацию в обоих направлениях вперед или назад в Map. Следующий пример иллюстрирует то же самое.
Пример интерфейса MapIterator
Пример OrderedMapTester.java приведен ниже -
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"));
}
}
Выход
Результат будет следующим -
One
Two
Three
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверить наличие ненулевых элементов
Метод addIgnoreNull () CollectionUtils можно использовать для обеспечения того, чтобы в коллекцию добавлялись только ненулевые значения.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.addIgnoreNull() метод -
public static <T> boolean addIgnoreNull(Collection<T> collection, T object)
Параметры
collection - Коллекция, в которую нужно добавить, не должна иметь значение NULL.
object - Добавляемый объект, если null, он не будет добавлен.
Возвращаемое значение
Верно, если коллекция изменилась.
Исключение
NullPointerException - Если коллекция нулевая.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.addIgnoreNull()метод. Мы пытаемся добавить нулевое значение и образец ненулевого значения.
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");
}
}
}
Выход
Вывод упомянут ниже -
[a]
Null value is not present
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Объединение двух отсортированных списков
Метод collate () CollectionUtils может использоваться для объединения двух уже отсортированных списков.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.collate() метод -
public static <O extends Comparable<? super O>> List<O>
collate(Iterable<? extends O> a, Iterable<? extends O> b)
Параметры
a - Первая коллекция не должна быть нулевой.
b - Вторая коллекция не должна быть нулевой.
Возвращаемое значение
Новый отсортированный список, содержащий элементы коллекции a и b.
Исключение
NullPointerException - Если любая из коллекций равна нулю.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.collate()метод. Мы объединим два отсортированных списка, а затем распечатаем объединенный и отсортированный список.
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);
}
}
Выход
Результат выглядит следующим образом -
[A, B, C, D, E, F]
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Преобразование списка
collect () метод CollectionUtils можно использовать для преобразования списка объектов одного типа в список объектов другого типа.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.collect() метод -
public static <I,O> Collection<O> collect(Iterable<I> inputCollection,
Transformer<? super I,? extends O> transformer)
Параметры
inputCollection - Коллекция, из которой нужно получить входные данные, не может быть нулевой.
Transformer - Используемый трансформатор может быть нулевым.
Возвращаемое значение
Преобразованный результат (новый список).
Исключение
NullPointerException - Если входная коллекция равна нулю.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.collect()метод. Мы преобразуем список строк в список целых чисел, проанализировав целочисленное значение из 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);
}
}
Выход
Когда вы используете код, вы получите следующий код -
[1, 2, 3]
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
filter () метод
filter () метода CollectionUtils можно использовать для фильтрации списка для удаления объектов, которые не удовлетворяют условию, предоставленному переданным предикатом.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.filter() метод -
public static <T> boolean filter(Iterable<T> collection,
Predicate<? super T> predicate)
Параметры
collection - Коллекция, из которой нужно получить входные данные, не может быть нулевой.
predicate - Предикат для использования в качестве фильтра может иметь значение NULL.
Возвращаемое значение
Истина, если коллекция изменена этим вызовом, в противном случае - ложь.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.filter()метод. Мы отфильтруем список целых чисел, чтобы получить только четные числа.
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);
}
}
Выход
Это даст следующий результат -
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Even numbers): [2, 4, 6, 8]
filterInverse () метод
filterInverse () метод CollectionUtils может использоваться для фильтрации списка для удаления объектов, которые удовлетворяют условию, предоставленному переданным предикатом.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.filterInverse() метод -
public static <T> boolean filterInverse(
Iterable<T> collection, Predicate<? super T> predicate)
Параметры
collection - Коллекция, из которой нужно получить входные данные, не может быть нулевой.
predicate - Предикат для использования в качестве фильтра может иметь значение NULL.
Возвращаемое значение
Истина, если коллекция изменена этим вызовом, в противном случае - ложь.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.filterInverse()метод. Мы отфильтруем список целых чисел, чтобы получить только нечетные числа.
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);
}
}
Выход
Результат, как указано ниже -
Original List: [1, 2, 3, 4, 5, 6, 7, 8]
Filtered List (Odd numbers): [1, 3, 5, 7]
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверка непустого списка
Метод isNotEmpty () CollectionUtils можно использовать для проверки того, не является ли список пустым, не беспокоясь о пустом списке. Таким образом, не требуется везде ставить нулевую проверку перед проверкой размера списка.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.isNotEmpty() метод -
public static boolean isNotEmpty(Collection<?> coll)
Параметры
coll - Коллекция для проверки может быть нулевой.
Возвращаемое значение
Истинно, если не равно нулю и не пусто.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.isNotEmpty()метод. Проверим, пустой список или нет.
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);
}
}
Выход
Результат приведен ниже -
Non-Empty List Check: false
Non-Empty List Check: false
Проверка пустого списка
Метод isEmpty () CollectionUtils можно использовать для проверки того, пуст ли список, не беспокоясь о пустом списке. Таким образом, не требуется везде ставить нулевую проверку перед проверкой размера списка.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.isEmpty() метод -
public static boolean isEmpty(Collection<?> coll)
Параметры
coll - Коллекция для проверки может быть нулевой.
Возвращаемое значение
Истинно, если пусто или null.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.isEmpty()метод. Проверим, пустой список или нет.
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);
}
}
Выход
Ниже приведен вывод кода -
Empty List Check: true
Empty List Check: true
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверка подсписка
isSubCollection () метода CollectionUtils можно использовать для проверки, содержит ли коллекция данную коллекцию или нет.
Декларация
Ниже приводится декларация для
org.apache.commons.collections4.CollectionUtils.isSubCollection() метод -
public static boolean isSubCollection(
Collection<?> a, Collection<?> b)
Параметры
a - Первая (под) коллекция не должна быть нулевой.
b - Вторая (супер) коллекция не должна быть нулевой.
Возвращаемое значение
Истинно тогда и только тогда, когда a является подсборкой b.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.isSubCollection()метод. Мы проверим, является ли список частью другого списка или нет.
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));
}
}
Выход
Вы получите следующий вывод -
List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
Is List 2 contained in List 1: true
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверка перекрестка
Пересечение () метода CollectionUtils может использоваться для получения общих объектов между двумя коллекциями (пересечение).
Декларация
Ниже приводится декларация для org.apache.commons.collections4.CollectionUtils.intersection() метод -
public static <O> Collection<O> intersection(Iterable<? extends O> a,
Iterable<? extends O> b)
Параметры
a - Первая (под) коллекция не должна быть нулевой.
b - Вторая (супер) коллекция не должна быть нулевой.
Возвращаемое значение
Пересечение двух коллекций.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.intersection()метод. Получим пересечение двух списков.
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));
}
}
Выход
Когда вы запустите код, вы увидите следующий вывод -
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]
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверка вычитания
Метод subtract () CollectionUtils может использоваться для получения новой коллекции путем вычитания объектов одной коллекции из другой.
Декларация
Ниже приводится декларация для org.apache.commons.collections4.CollectionUtils.subtract() метод -
public static <O> Collection<O> subtract(Iterable<? extends O> a,
Iterable<? extends O> b)
Параметры
a - Коллекция, из которой выполняется вычитание, не должна иметь значение NULL.
b - Коллекция для вычитания не должна быть нулевой.
Возвращаемое значение
Новая коллекция с результатами.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.subtract()метод. Получим вычитание двух списков.
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));
}
}
Выход
Когда вы выполните приведенный выше код, вы должны увидеть следующий результат -
List 1: [A, A, A, C, B, B]
List 2: [A, A, B, B]
List 1 - List 2: [A, C]
Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные служебные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания шаблонного кода. Эта библиотека была очень полезна до jdk 8, поскольку аналогичные функции теперь предоставляются в Java 8 Stream API.
Проверка союза
union () метод CollectionUtils может использоваться для получения объединения двух коллекций.
Декларация
Ниже приводится декларация для org.apache.commons.collections4.CollectionUtils.union() метод -
public static <O> Collection<O> union(
Iterable<? extends O> a, Iterable<? extends O> b)
Параметры
a - Первая коллекция не должна быть нулевой.
b - Вторая коллекция не должна быть нулевой.
Возвращаемое значение
Объединение двух коллекций.
пример
В следующем примере показано использование org.apache.commons.collections4.CollectionUtils.union()метод. Получим объединение двух списков.
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));
}
}
Выход
Это дает следующий результат -
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]