Coleções Apache Commons - Guia rápido

Coleções Apache Commons - Visão geral

O Commons Collections aumenta o Java Collections Framework. Ele fornece vários recursos para facilitar o manuseio da coleção. Ele fornece muitas novas interfaces, implementações e utilitários. Os principais recursos do Commons Collections são os seguintes -

  • Bag - Bag interfaces simplifica as coleções que possuem vários números de cópias de cada objeto.

  • BidiMap - as interfaces BidiMap fornecem mapas bidirecionais que podem ser usados para pesquisar valores usando chaves ou chaves usando valores.

  • MapIterator - a interface MapIterator fornece iteração simples e fácil sobre os mapas.

  • Transformadores de decoradores - Os transformadores de decoradores podem alterar todos os objetos de uma coleção como e quando são adicionados à coleção.

  • Coleções compostas - as coleções compostas são usadas onde várias coleções precisam ser tratadas de maneira uniforme.

  • Mapa ordenado - os mapas ordenados mantêm a ordem na qual os elementos são adicionados.

  • Conjunto ordenado - Os conjuntos ordenados mantêm a ordem na qual os elementos são adicionados.

  • Mapa de referência - O mapa de referência permite que as chaves / valores sejam coletados como lixo sob controle rigoroso.

  • Implementações do comparador - muitas implementações do comparador estão disponíveis.

  • Implementações do Iterator - Muitas implementações do Iterator estão disponíveis.

  • Classes de adaptadores - as classes de adaptadores estão disponíveis para converter matriz e enumerações em coleções.

  • Utilitários - Os utilitários estão disponíveis para testar testes ou criar propriedades típicas da teoria dos conjuntos de coleções, como união, interseção. Suporta fechamento.

Coleções Commons - Configuração do ambiente

Configuração do ambiente local

Se você ainda deseja configurar seu ambiente para a linguagem de programação Java, esta seção o guia sobre como baixar e configurar o Java em sua máquina. Siga as etapas mencionadas abaixo para configurar o ambiente.

O Java SE está disponível gratuitamente no link Download Java . Então você baixa uma versão com base no seu sistema operacional.

Siga as instruções para baixar o Java e execute o .exe para instalar o Java em sua máquina. Depois de instalar o Java em sua máquina, você precisará definir variáveis de ambiente para apontar para corrigir os diretórios de instalação -

Configurando o caminho para Windows 2000 / XP

Estamos assumindo que você instalou o Java no diretório c: \ Arquivos de Programas \ java \ jdk -

  • Clique com o botão direito do mouse em 'Meu computador' e selecione 'Propriedades'.

  • Clique no botão 'Variáveis de ambiente' na guia 'Avançado'.

  • Agora, altere a variável 'Path' para que ela também contenha o caminho para o executável Java. Por exemplo, se o caminho estiver atualmente definido como 'C: \ WINDOWS \ SYSTEM32', altere o caminho para 'C: \ WINDOWS \ SYSTEM32; c: \ Arquivos de Programas \ java \ jdk \ bin'.

Configurando o caminho para Windows 95/98 / ME

Estamos assumindo que você instalou o Java no diretório c: \ Arquivos de Programas \ java \ jdk -

  • Edite o arquivo 'C: \ autoexec.bat' e adicione a seguinte linha no final - 'SET PATH =% PATH%; C: \ Arquivos de Programas \ java \ jdk \ bin'

Configurando o caminho para Linux, UNIX, Solaris, FreeBSD

A variável de ambiente PATH deve ser configurada para apontar para o local em que os binários Java foram instalados. Consulte a documentação do shell se tiver problemas para fazer isso.

Por exemplo, se você usar o bash como seu shell, adicione a seguinte linha ao final do seu '.bashrc: export PATH = / path / to / java: $ PATH'

Editores Java populares

Para escrever seus programas Java, você precisa de um editor de texto. Existem muitos IDEs sofisticados disponíveis no mercado. Mas, por enquanto, você pode considerar um dos seguintes:

  • Bloco de notas - Na máquina Windows, você pode usar qualquer editor de texto simples como o Bloco de notas (recomendado para este tutorial), o TextPad.

  • Netbeans - É um Java IDE de código aberto e gratuito que pode ser baixado em https://www.netbeans.org/index.html .

  • Eclipse - Também é um IDE Java desenvolvido pela comunidade de código-fonte aberto do eclipse e pode ser baixado em https://www.eclipse.org/ .

Baixar o arquivo de coleções comuns

Faça o download da versão mais recente do arquivo jar do Apache Common Collections em commons-collections4-4.1-bin.zip . No momento em que escrevemos este tutorial, baixamos o arquivo commons-collections4-4.1-bin.zip e o copiámos na pasta C: \> Apache .

OS Nome do arquivo
janelas commons-collections4-4.1-bin.zip
Linux commons-collections4-4.1-bin.tar.gz
Mac commons-collections4-4.1-bin.tar.gz

Definir ambiente de coleções comuns do Apache

Defina a variável de ambiente APACHE_HOME para apontar para o local do diretório base onde o jar do Apache está armazenado em sua máquina. Supondo que extraímos commons-collections4-4.1-bin.zip na pasta Apache em vários sistemas operacionais da seguinte maneira.

OS Resultado
janelas Defina a variável de ambiente APACHE_HOME como C: \ Apache
Linux exportar APACHE_HOME = / usr / local / Apache
Mac exportar APACHE_HOME = / Biblioteca / Apache

Definir variável CLASSPATH

Defina a variável de ambiente CLASSPATH para apontar para o local do jar Common Collections. Supondo que você tenha armazenado commons-collections4-4.1-bin.zip na pasta Apache em vários sistemas operacionais, da seguinte maneira.

OS Resultado
janelas Defina a variável de ambiente CLASSPATH como% CLASSPATH%;% APACHE_HOME% \ commons-collections4-4.1-bin.jar;.;
Linux exportar CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.
Mac exportar CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-collections4-4.1-bin.jar :.

Coleções Apache Commons - Interface Bag

Novas interfaces são adicionadas aos sacos de suporte. Um Bag define uma coleção que conta o número de vezes que um objeto aparece na coleção. Por exemplo, se um Bag contiver {a, a, b, c}, getCount ("a") retornará 2 enquanto uniqueSet () retorna os valores exclusivos.

Declaração de Interface

A seguir, está a declaração da interface org.apache.commons.collections4.Bag <E> -

public interface Bag<E>
   extends Collection<E>

Métodos

Sr. Não. Método e Descrição
1

adição booleana (objeto E)

(Violação) Adiciona uma cópia do objeto especificado ao saco.

2

adição booleana (objeto E, int nCopies)

Adiciona nCopies cópias do objeto especificado ao Bag.

3

boolean containsAll (Collection <?> coll)

(Violação) Retorna true se o saco contiver todos os elementos da coleção fornecida, respeitando a cardinalidade.

4

int getCount (objeto Object)

Retorna o número de ocorrências (cardinalidade) do objeto especificado atualmente na bolsa.

5

Iterador <E> iterador ()

Retorna um iterador sobre todo o conjunto de membros, incluindo cópias devido à cardinalidade.

6

remoção booleana (objeto Object)

(Violação) Remove todas as ocorrências do objeto especificado da sacola.

7

remoção booleana (objeto Object, int nCopies)

Remove nCopies cópias do objeto especificado do Bag.

8

boolean removeAll (coleção <?> coll)

(Violação) Remova todos os elementos representados na coleção fornecida, respeitando a cardinalidade.

9

boolean reterAll (coleção <?> coll)

(Violação) Remova quaisquer membros da sacola que não estejam na coleção fornecida, respeitando a cardinalidade.

10

int size ()

Retorna o número total de itens na bolsa em todos os tipos.

11

Defina <E> uniqueSet ()

Retorna um conjunto de elementos exclusivos no saco.

Métodos herdados

Essa interface herda métodos da seguinte interface -

  • java.util.Collection

Exemplo de interface de bolsa

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

Resultado

Ele imprimirá o seguinte resultado.

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]

Coleções Commons - Interface BidiMap

Novas interfaces são adicionadas para suportar o mapa bidirecional. Usando o mapa bidirecional, uma chave pode ser pesquisada usando o valor e o valor pode ser pesquisado usando a chave facilmente.

Declaração de Interface

A seguir, está a declaração da interface org.apache.commons.collections4.BidiMap <K, V> -

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

Métodos

Sr. Não. Método e Descrição
1

K getKey (valor do objeto)

Obtém a chave atualmente mapeada para o valor especificado.

2

BidiMap <V, K> inverseBidiMap ()

Obtém uma visão deste mapa onde as chaves e os valores são revertidos.

3

V put (chave K, valor V)

Coloca o par de valores-chave no mapa, substituindo qualquer par anterior.

4

K removeValue (valor do objeto)

Remove o par de valores-chave atualmente mapeado para o valor especificado (operação opcional).

5

Definir valores <V> ()

Retorna uma visualização de conjunto dos valores contidos neste mapa.

Métodos herdados

Essa interface herda métodos das seguintes interfaces -

  • org.apache.commons.collections4.Get
  • org.apache.commons.collections4.IterableGet
  • org.apache.commons.collections4.Put
  • java.util.Map

Exemplo de interface 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);
   }
}

Resultado

Ele imprimirá o seguinte resultado.

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

Coleções do Commons - Interface do MapIterator

A interface do mapa JDK é bastante difícil de iterar, pois a iteração é feita no EntrySet ou nos objetos KeySet. O MapIterator fornece iteração simples sobre o Map. O exemplo a seguir ilustra o mesmo.

Exemplo de interface 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);
   }
}

Resultado

Ele imprimirá o seguinte resultado.

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

Interface OrderedMap

OrderedMap é uma nova interface para mapas para manter a ordem na qual os elementos são adicionados. LinkedMap e ListOrderedMap são duas implementações disponíveis. Essa interface suporta o iterador do Map e permite a iteração em ambas as direções, para frente ou para trás em um Mapa. O exemplo a seguir ilustra o mesmo.

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

Resultado

Ele imprimirá o seguinte resultado.

One
Two
Three

Coleções Apache Commons - Ignorar Null

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificar elementos não Null

O método addIgnore Null () de CollectionUtils pode ser usado para garantir que apenas valores não null sejam adicionados à coleção.

Declaração

A seguir está a declaração para

Método org.apache.commons.collections4.CollectionUtils.addIgnore Null () -

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

Parâmetros

  • coleção - A coleção à qual adicionar, não deve ser null .

  • objeto - O objeto a ser adicionado, se null , não será adicionado.

Valor de retorno

Verdadeiro se a coleção foi alterada.

Exceção

  • PointerException Null - se a coleção for null .

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.addIgnore Null (). Estamos tentando adicionar um valor null e um exemplo de valor não 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.addIgnore Null (list, null );
      CollectionUtils.addIgnore Null (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");
      }
   }
}

Resultado

Ele imprimirá o seguinte resultado.

[a]
Null value is not present

Coleções Apache Commons - Mesclar e classificar

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Mesclando duas listas classificadas

O método collate () de CollectionUtils pode ser usado para mesclar duas listas já classificadas.

Declaração

A seguir está a declaração para

método org.apache.commons.collections4.CollectionUtils.collate ()

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

Parâmetros

  • a - A primeira coleção, não deve ser null .

  • b - A segunda coleção, não deve ser null .

Valor de retorno

Uma nova lista classificada, contendo os elementos da coleção a e b.

Exceção

  • Null PointerException - se uma das coleções for null .

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.collate (). Mesclaremos duas listas classificadas e, em seguida, imprimiremos a lista mesclada e classificada.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Coleções Commons - Transformando Objetos

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Transformando uma lista

O método collect () de CollectionUtils pode ser usado para transformar uma lista de um tipo de objetos em uma lista de diferentes tipos de objetos.

Declaração

A seguir está a declaração para

método org.apache.commons.collections4.CollectionUtils.collect ()

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

Parâmetros

  • inputCollection - A coleção da qual obter a entrada pode não ser null .

  • Transformador - O transformador a ser usado pode ser null .

Valor de retorno

O resultado transformado (nova lista).

Exceção

  • PointerException Null - se a coleção de entrada for null .

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.collect (). Transformaremos uma lista de string em lista de número inteiro analisando o valor inteiro de 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);
   }
}

Resultado

Ele imprimirá o seguinte resultado.

[1, 2, 3]

Coleções Commons - Filtragem de objetos

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Filtrando uma lista usando o método filter ()

O método filter () de CollectionUtils pode ser usado para filtrar uma lista para remover objetos que não atendem à condição fornecida pelo predicado passado.

Declaração

A seguir está a declaração para

método org.apache.commons.collections4.CollectionUtils.filter () -

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

Parâmetros

  • coleção - A coleção da qual obter a entrada pode não ser null .

  • predicado - O predicado a ser usado como filtro pode ser null .

Valor de retorno

True se a coleção for modificada por esta chamada, false caso contrário.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.filter (). Filtraremos uma lista de números inteiros para obter apenas números pares.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Filtrando uma lista usando o método filterInverse ()

O método filterInverse () de CollectionUtils pode ser usado para filtrar uma lista para remover objetos que satisfazem a condição fornecida pelo predicado passado.

Declaração

A seguir está a declaração para

Método org.apache.commons.collections4.CollectionUtils.filterInverse ()

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

Parâmetros

  • coleção - A coleção da qual obter a entrada pode não ser null .

  • predicado - O predicado a ser usado como filtro pode ser null .

Valor de retorno

True se a coleção for modificada por esta chamada, false caso contrário.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.filterInverse (). Filtraremos uma lista de números inteiros para obter apenas números ímpares.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Coleções Commons - cheques vazios seguros

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificando lista não vazia

O método isNotEmpty () de CollectionUtils pode ser usado para verificar se uma lista não está vazia sem se preocupar com a lista null . Portanto, a verificação null não precisa ser colocada em qualquer lugar antes de verificar o tamanho da lista.

Declaração

A seguir está a declaração para

Método org.apache.commons.collections4.CollectionUtils.isNotEmpty ()

public static boolean isNotEmpty(Collection<?> coll)

Parâmetros

  • coll - A coleção a ser verificada pode ser null .

Valor de retorno

Verdadeiro se não for null e não estiver vazio.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.isNotEmpty (). Verificaremos se uma lista está vazia ou não.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Verificando lista vazia

O método isEmpty () de CollectionUtils pode ser usado para verificar se uma lista está vazia sem se preocupar com a lista null . Portanto, a verificação null não precisa ser colocada em qualquer lugar antes de verificar o tamanho da lista.

Declaração

A seguir está a declaração para

método org.apache.commons.collections4.CollectionUtils.isEmpty () -

public static boolean isEmpty(Collection<?> coll)

Parâmetros

  • coll - A coleção a ser verificada pode ser null .

Valor de retorno

Verdadeiro se vazio ou null .

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.isEmpty (). Verificaremos se uma lista está vazia ou não.

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

Resultado

Ele imprimirá o seguinte resultado.

Empty List Check: true
Empty List Check: true

Coleções Apache Commons - Inclusão

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificando a sub-lista

O método isSubCollection () de CollectionUtils pode ser usado para verificar se uma coleção contém a coleção fornecida ou não.

Declaração

A seguir está a declaração para

método org.apache.commons.collections4.CollectionUtils.isSubCollection () -

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

Parâmetros

  • a - A primeira (sub) coleção, não deve ser null .

  • b - A segunda (super) coleção, não deve ser null .

Valor de retorno

Verdadeiro se e somente se a for uma subconjunto de b.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.isSubCollection (). Verificaremos se uma lista faz parte de outra lista ou não.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Coleções Apache Commons - Interseção

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificando a interseção

O método intersection () de CollectionUtils pode ser usado para obter objetos comuns entre duas coleções (interseção).

Declaração

A seguir, está a declaração do método org.apache.commons.collections4.CollectionUtils.intersection ()

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

Parâmetros

  • a - A primeira (sub) coleção, não deve ser null .

  • b - A segunda (super) coleção, não deve ser null .

Valor de retorno

A interseção das duas coleções.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.intersection (). Obteremos o cruzamento de duas listas.

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

Resultado

Ele imprimirá o seguinte resultado.

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]

Coleções Apache Commons - Subtração

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificando a subtração

O método subtract () de CollectionUtils pode ser usado para obter a nova coleção, subtraindo objetos de uma coleção da outra.

Declaração

A seguir, está a declaração do método org.apache.commons.collections4.CollectionUtils.subtract () -

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

Parâmetros

  • a - A coleção para subtrair não deve ser null .

  • b - A coleção a ser subtraída não deve ser null .

Valor de retorno

Uma nova coleção com os resultados.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.subtract (). Obteremos a subtração de duas listas.

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

Resultado

Ele imprimirá o seguinte resultado.

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

Coleções Apache Commons - União

A classe CollectionUtils da biblioteca Apache Commons Collections fornece vários métodos utilitários para operações comuns, cobrindo uma ampla variedade de casos de uso. Isso ajuda a evitar a gravação de código padrão. Essa biblioteca é muito útil antes do jdk 8, pois funcionalidades semelhantes agora são fornecidas na API Stream do Java 8.

Verificando a união

O método union () de CollectionUtils pode ser usado para obter a união de duas coleções.

Declaração

A seguir, está a declaração do método org.apache.commons.collections4.CollectionUtils.union ()

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

Parâmetros

  • a - A primeira coleção, não deve ser null .

  • b - A segunda coleção, não deve ser null .

Valor de retorno

A união das duas coleções.

Exemplo

O exemplo a seguir mostra o uso do método org.apache.commons.collections4.CollectionUtils.union (). Obteremos a união de duas listas.

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

Resultado

Ele imprimirá o seguinte resultado.

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]