Учебники

Коллекции Apache Commons – Краткое руководство

Коллекции Apache Commons – Обзор

Коллекции Commons дополняют платформу Java Collections. Он предоставляет несколько функций, облегчающих обработку коллекции. Он предоставляет много новых интерфейсов, реализаций и утилит. Основные особенности коллекций Commons следующие –

  • Bag – Bag интерфейсы упрощают коллекции, которые имеют несколько копий каждого объекта.

  • BidiMap – интерфейсы BidiMap предоставляют двунаправленные карты, которые можно использовать для поиска значений с помощью ключей или ключей с использованием значений.

  • MapIterator – интерфейс MapIterator обеспечивает простую и легкую итерацию по картам.

  • Преобразующие декораторы – Преобразующие декораторы могут изменять каждый объект коллекции, как и когда он добавляется в коллекцию.

  • Составные коллекции – Составные коллекции используются, когда несколько коллекций должны обрабатываться одинаково.

  • Упорядоченная карта – Упорядоченные карты сохраняют порядок, в котором элементы добавляются в.

  • Упорядоченный набор – Упорядоченные наборы сохраняют порядок, в котором элементы добавляются в.

  • Справочная карта – Справочная карта позволяет собирать ключи / значения под строгим контролем.

  • Реализации компаратора – доступно множество реализаций компаратора.

  • Реализации итераторов – доступно много реализаций итераторов.

  • Классы адаптера – классы адаптера доступны для преобразования массивов и перечислений в коллекции.

  • Утилиты – Утилиты доступны для тестирования или создания типовых свойств теорий множеств, таких как объединение, пересечение. Поддерживает закрытие

Bag – Bag интерфейсы упрощают коллекции, которые имеют несколько копий каждого объекта.

BidiMap – интерфейсы BidiMap предоставляют двунаправленные карты, которые можно использовать для поиска значений с помощью ключей или ключей с использованием значений.

MapIterator – интерфейс MapIterator обеспечивает простую и легкую итерацию по картам.

Преобразующие декораторы – Преобразующие декораторы могут изменять каждый объект коллекции, как и когда он добавляется в коллекцию.

Составные коллекции – Составные коллекции используются, когда несколько коллекций должны обрабатываться одинаково.

Упорядоченная карта – Упорядоченные карты сохраняют порядок, в котором элементы добавляются в.

Упорядоченный набор – Упорядоченные наборы сохраняют порядок, в котором элементы добавляются в.

Справочная карта – Справочная карта позволяет собирать ключи / значения под строгим контролем.

Реализации компаратора – доступно множество реализаций компаратора.

Реализации итераторов – доступно много реализаций итераторов.

Классы адаптера – классы адаптера доступны для преобразования массивов и перечислений в коллекции.

Утилиты – Утилиты доступны для тестирования или создания типовых свойств теорий множеств, таких как объединение, пересечение. Поддерживает закрытие

Коллекции Commons – Настройка среды

Настройка локальной среды

Если вы все еще хотите настроить свою среду для языка программирования Java, то в этом разделе вы узнаете, как загрузить и настроить Java на вашем компьютере. Пожалуйста, следуйте инструкциям ниже, чтобы настроить среду.

Java SE находится в свободном доступе по ссылке Скачать Java . Таким образом, вы загружаете версию, основанную на вашей операционной системе.

Следуйте инструкциям для загрузки Java и запуска .exe для установки Java на вашем компьютере. После того, как вы установили Java на свой компьютер, вам нужно будет установить переменные окружения, чтобы они указывали на правильные каталоги установки –

Настройка пути для Windows 2000 / XP

Мы предполагаем, что вы установили Java в каталог c: \ Program Files \ java \ jdk

  • Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».

  • Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».

  • Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящий момент путь задан как «C: \ WINDOWS \ SYSTEM32», измените ваш путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin».

Щелкните правой кнопкой мыши «Мой компьютер» и выберите «Свойства».

Нажмите кнопку «Переменные среды» на вкладке «Дополнительно».

Теперь измените переменную Path, чтобы она также содержала путь к исполняемому файлу Java. Например, если в настоящий момент путь задан как «C: \ WINDOWS \ SYSTEM32», измените ваш путь на «C: \ WINDOWS \ SYSTEM32; c: \ Program Files \ java \ jdk \ bin».

Настройка пути для Windows 95/98 / ME

Мы предполагаем, что вы установили Java в каталог c: \ Program Files \ java \ jdk

  • Отредактируйте файл «C: \ autoexec.bat» и добавьте в конце следующую строку: «SET PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin»

Отредактируйте файл «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, доступных на рынке. Но сейчас вы можете рассмотреть один из следующих –

  • Блокнот – на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.

  • Netbeans – это Java IDE с открытым исходным кодом, который можно загрузить по адресу https://www.netbeans.org/index.html .

  • Eclipse – это также Java IDE, разработанная сообществом открытого исходного кода eclipse, которую можно скачать по адресу https://www.eclipse.org/ .

Блокнот – на компьютере с Windows вы можете использовать любой простой текстовый редактор, например Блокнот (рекомендуется для этого урока), TextPad.

Netbeans – это Java IDE с открытым исходным кодом, который можно загрузить по адресу https://www.netbeans.org/index.html .

Eclipse – это также Java IDE, разработанная сообществом открытого исходного кода eclipse, которую можно скачать по адресу https://www.eclipse.org/ .

Скачать архив общих коллекций

Загрузите последнюю версию jar-файла Apache Common Collections с сайта commons-collections4-4.1-bin.zip . На момент написания этого руководства мы загрузили файл commons-collections4-4.1-bin.zip и скопировали его в папку C: \> Apache.

Операционные системы Название архива
Windows commons-collections4-4.1-bin.zip
Linux Обще-collections4-4.1-bin.tar.gz
макинтош Обще-collections4-4.1-bin.tar.gz

Установить Apache Common Collections Environment

Установите переменную окружения APACHE_HOME, чтобы она указывала на местоположение базовой директории, где на вашем компьютере хранится jar-файл Apache. Предполагая, что мы извлекли commons-collections4-4.1-bin.zip в папку Apache в различных операционных системах следующим образом.

Операционные системы Выход
Windows Установите переменную окружения APACHE_HOME в C: \ Apache
Linux экспорт APACHE_HOME = / usr / local / Apache
макинтош экспорт APACHE_HOME = / Библиотека / Apache

Установить переменную CLASSPATH

Установите переменную среды CLASSPATH, чтобы она указывала на расположение фляги Common Collections. Предполагая, что вы сохранили commons-collections4-4.1-bin.zip в папке Apache в различных операционных системах следующим образом.

Операционные системы Выход
Windows Задайте для переменной среды CLASSPATH значение% CLASSPATH%;% APACHE_HOME% \ commons-collection4-4.1-bin.jar;.;
Linux экспорт CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collection4-4.1-bin.jar :.
макинтош экспорт CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collection4-4.1-bin.jar :.

Коллекции Apache Commons – интерфейс для сумок

Новые интерфейсы добавлены в пакеты поддержки. Bag определяет коллекцию, которая подсчитывает, сколько раз объект появляется в коллекции. Например, если 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

логическое сложение (объект E)

(Нарушение) Добавляет одну копию указанного объекта в сумку.

2

логическое добавление (объект E, int nCopies)

Добавляет nCopies копии указанного объекта в Bag.

3

логическое содержит все (коллекция <?> колл)

(Нарушение) Возвращает true, если сумка содержит все элементы в данной коллекции, учитывая количество элементов.

4

int getCount (Объектный объект)

Возвращает количество вхождений (кардинальности) данного объекта, который в данный момент находится в сумке.

5

Iterator <E> iterator ()

Возвращает Итератор для всего набора членов, включая копии из-за количества элементов.

6

логическое удаление (объектный объект)

(Нарушение) Удаляет все вхождения данного объекта из сумки.

7

логическое удаление (Object object, int nCopies)

Удаляет nCopies копии указанного объекта из сумки.

8

логическое removeAll (коллекция <?> coll)

(Нарушение) Удалите все элементы, представленные в данной коллекции, соблюдая количество элементов.

9

логическое retainAll (коллекция <?> coll)

(Нарушение) Удалите все элементы сумки, которых нет в данной коллекции, соблюдая количество элементов.

10

int size ()

Возвращает общее количество предметов в сумке для всех типов.

11

Установите <E> uniqueSet ()

Возвращает набор уникальных элементов в сумке.

логическое сложение (объект E)

(Нарушение) Добавляет одну копию указанного объекта в сумку.

логическое добавление (объект E, int nCopies)

Добавляет nCopies копии указанного объекта в Bag.

логическое содержит все (коллекция <?> колл)

(Нарушение) Возвращает true, если сумка содержит все элементы в данной коллекции, учитывая количество элементов.

int getCount (Объектный объект)

Возвращает количество вхождений (кардинальности) данного объекта, который в данный момент находится в сумке.

Iterator <E> iterator ()

Возвращает Итератор для всего набора членов, включая копии из-за количества элементов.

логическое удаление (объектный объект)

(Нарушение) Удаляет все вхождения данного объекта из сумки.

логическое удаление (Object object, int nCopies)

Удаляет nCopies копии указанного объекта из сумки.

логическое removeAll (коллекция <?> coll)

(Нарушение) Удалите все элементы, представленные в данной коллекции, соблюдая количество элементов.

логическое retainAll (коллекция <?> coll)

(Нарушение) Удалите все элементы сумки, которых нет в данной коллекции, соблюдая количество элементов.

int size ()

Возвращает общее количество предметов в сумке для всех типов.

Установите <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]

Коллекции Commons – интерфейс BidiMap

Добавлены новые интерфейсы для поддержки двунаправленной карты. Используя двунаправленную карту, ключ можно искать с помощью значения, а значение можно легко искать с помощью ключа.

Декларация интерфейса

Ниже приводится объявление для интерфейса org.apache.commons.collections4.BidiMap <K, V> –

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

методы

Sr.No. Метод и описание
1

K getKey (значение объекта)

Получает ключ, который в данный момент сопоставлен с указанным значением.

2

BidiMap <V, K> inverseBidiMap ()

Получает представление этой карты, где ключи и значения меняются местами.

3

V положить (ключ K, значение V)

Помещает пару ключ-значение в карту, заменяя любую предыдущую пару.

4

K removeValue (значение объекта)

Удаляет пару ключ-значение, которая в данный момент сопоставлена ​​с указанным значением (необязательная операция).

5

Установите значения <V> ()

Возвращает представление Set значений, содержащихся в этой карте.

K getKey (значение объекта)

Получает ключ, который в данный момент сопоставлен с указанным значением.

BidiMap <V, K> inverseBidiMap ()

Получает представление этой карты, где ключи и значения меняются местами.

V положить (ключ K, значение V)

Помещает пару ключ-значение в карту, заменяя любую предыдущую пару.

K removeValue (значение объекта)

Удаляет пару ключ-значение, которая в данный момент сопоставлена ​​с указанным значением (необязательная операция).

Установите значения <V> ()

Возвращает представление Set значений, содержащихся в этой карте.

Унаследованные методы

Этот интерфейс наследует методы от следующих интерфейсов –

  • 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}

Коллекции Commons – Интерфейс MapIterator

Интерфейс JDK Map довольно сложно перебрать, так как итерация выполняется на EntrySet или над объектами KeySet. MapIterator обеспечивает простую итерацию по карте. Следующий пример иллюстрирует то же самое.

Пример интерфейса 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 Interface

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

Коллекции Apache Commons – Игнорировать Нуль

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка на ненулевые элементы

Метод addIgnoreNull () класса CollectionUtils можно использовать для обеспечения добавления в коллекцию только ненулевых значений.

декларация

Ниже приводится декларация для

org.apache.commons.collections4.CollectionUtils.addIgnoreNull () метод –

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

параметры

  • коллекция – коллекция, к которой нужно добавить, не должна быть нулевой.

  • object – объект, который нужно добавить, если ноль, он не будет добавлен

коллекция – коллекция, к которой нужно добавить, не должна быть нулевой.

object – объект, который нужно добавить, если ноль, он не будет добавлен

Возвращаемое значение

Верно, если коллекция изменилась.

исключение

  • NullPointerException – Если коллекция является нулем.

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

Коллекции Apache Commons – Слияние и сортировка

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Объединение двух отсортированных списков

Метод 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.

исключение

  • NullPointerException – Если любая коллекция является нулем.

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]

Коллекции Commons – Трансформируемые объекты

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Преобразование списка

Метод 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 – Используемый трансформатор может быть нулевым.

inputCollection – Коллекция, из которой можно получить входные данные, не может быть нулевой.

Transformer – Используемый трансформатор может быть нулевым.

Возвращаемое значение

Преобразованный результат (новый список).

исключение

  • NullPointerException – Если входная коллекция является нулем.

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]

Коллекции Commons – Фильтрация объектов

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Фильтрация списка с использованием метода filter ()

Метод filter () класса CollectionUtils можно использовать для фильтрации списка, чтобы удалить объекты, которые не удовлетворяют условию, предоставляемому переданным предикатом.

декларация

Ниже приводится декларация для

org.apache.commons.collections4.CollectionUtils.filter () метод –

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

параметры

  • collection – Коллекция, из которой можно получить входные данные, не может быть нулевой.

  • Предикат – Предикат, который будет использоваться в качестве фильтра, может быть нулевым.

collection – Коллекция, из которой можно получить входные данные, не может быть нулевой.

Предикат – Предикат, который будет использоваться в качестве фильтра, может быть нулевым.

Возвращаемое значение

True, если коллекция изменена этим вызовом, в противном случае – false.

пример

В следующем примере показано использование метода 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 – Коллекция, из которой можно получить входные данные, не может быть нулевой.

  • Предикат – Предикат, который будет использоваться в качестве фильтра, может быть нулевым.

collection – Коллекция, из которой можно получить входные данные, не может быть нулевой.

Предикат – Предикат, который будет использоваться в качестве фильтра, может быть нулевым.

Возвращаемое значение

True, если коллекция изменена этим вызовом, в противном случае – false.

пример

В следующем примере показано использование метода 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]

Коллекции Commons – Безопасные Пустые Проверки

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка непустого списка

Метод isNotEmpty () класса CollectionUtils можно использовать для проверки, не является ли список пустым, не беспокоясь о пустом списке. Так что нулевая проверка не обязательна для повсеместного размещения перед проверкой размера списка.

декларация

Ниже приводится декларация для

org.apache.commons.collections4.CollectionUtils.isNotEmpty () метод

public static boolean isNotEmpty(Collection<?> coll)

параметры

  • 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 – Коллекция для проверки может быть нулевой.

coll – Коллекция для проверки может быть нулевой.

Возвращаемое значение

Истина, если пусто или ноль.

пример

В следующем примере показано использование метода 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

Коллекции Apache Commons – Включение

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка подсписка

Метод isSubCollection () класса CollectionUtils можно использовать для проверки, содержит ли коллекция данную коллекцию или нет.

декларация

Ниже приводится декларация для

org.apache.commons.collections4.CollectionUtils.isSubCollection () метод –

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

параметры

  • a – Первая (под) коллекция, не должна быть нулевой.

  • б – вторая (супер) коллекция, не должна быть нулевой

a – Первая (под) коллекция, не должна быть нулевой.

б – вторая (супер) коллекция, не должна быть нулевой

Возвращаемое значение

Истинно, если и только если 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

Коллекции Apache Commons – Пересечение

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка пересечения

Метод intersection () класса CollectionUtils можно использовать для получения общих объектов между двумя коллекциями (пересечение).

декларация

Ниже приводится объявление для метода org.apache.commons.collections4.CollectionUtils.intersection ()

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

параметры

  • a – Первая (под) коллекция, не должна быть нулевой.

  • б – вторая (супер) коллекция, не должна быть нулевой

a – Первая (под) коллекция, не должна быть нулевой.

б – вторая (супер) коллекция, не должна быть нулевой

Возвращаемое значение

Пересечение двух коллекций.

пример

В следующем примере показано использование метода 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]

Коллекции Apache Commons – вычитание

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка вычитания

Метод subtract () класса CollectionUtils можно использовать для получения новой коллекции путем вычитания объектов одной коллекции из другой.

декларация

Ниже приводится объявление для метода org.apache.commons.collections4.CollectionUtils.subtract ()

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

параметры

  • a – Коллекция, из которой необходимо вычесть, не должна быть нулевой.

  • b – Коллекция, которую нужно вычесть, не должна быть нулевой.

a – Коллекция, из которой необходимо вычесть, не должна быть нулевой.

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]

Коллекции Apache Commons – Союз

Класс CollectionUtils библиотеки Apache Commons Collections предоставляет различные вспомогательные методы для общих операций, охватывающих широкий спектр вариантов использования. Это помогает избежать написания стандартного кода. Эта библиотека очень полезна до jdk 8, так как аналогичные функции теперь доступны в Stream API Java 8.

Проверка союза

Метод union () класса CollectionUtils можно использовать для объединения двух коллекций.

декларация

Ниже приводится объявление для метода org.apache.commons.collections4.CollectionUtils.union ()

public static <O> Collection<O> union(Iterable<? extends O> a,
   Iterable<? extends O> 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));
   }
}

Выход

Будет напечатан следующий результат.