Article image

FO

Fellipe Oliveira06/02/2024 16:16
Compartilhe

Usando ArrayList em Java

    Embora a utilização de Arrays seja comum na área da programação para armazenar dados de um mesmo tipo, o que acontece quando o sistema possui uma quantidade mutável desses dados? A resposta para isso é o uso de uma ArrayList, um array redimensionável, mas que é derivada da interface List, que por sua vez é derivada da Collection. Dessa forma, a ArrayList pode utilizar de métodos de ambas.

    image

    Nesse artigo, exploramos o poder de uma ArrayList.

    Sua sintaxe no Java segue os padrões estabelecidos pela linguagem, onde ArrayList é uma classe e objetos dela podem ser instanciados a partir da palavra new. Além disso, também, faz-se necessária a importação da classe antes de utilizá-la no programa.

    import java.util.ArrayList;
    ArrayList<Tipo> minhaArrayList = new ArrayList<Tipo>();
    

    Note que, de acordo com a documentação Java, a prática de se implementar tipos parametrizados, ou seja, de especificar qual tipo de dado a ArrayList irá utilizar, é recomendado por três motivos:

    1. Permitir a implementação de algoritmos genéricos, que são mais fáceis de ler e customizar.
    2. Eliminação de casts.
    3. Ser mais fácil de detectar erros de compilação do que de execução.

    Dando continuidade, portanto, podemos exemplificar o uso de uma ArrayList e seus vários métodos que são utilizados no dia a dia. Nos exemplos, estaremos utilizando uma ArrayList com o nome de clientes de uma loja que serão sorteados de maneira arbitrária e o primeiro entre eles ganhará um desconto.

    Populando a ArrayList

    Com o método add(), pode-se adicionar elementos em uma ArrayList. Combinando com a operação for, o método não precisa ser digitado várias vezes. Iniciamos o exemplo ao verificar se a ArrayList está vazia através do método isEmpty() e logo em seguida permitindo que o usuário digite o nome de 4 clientes. Então, imprimimos a ArrayList na tela e verificamos novamente se está vazia.

    import java.util.ArrayList;
    import java.util.Scanner;
    
    
    public class ArtigoArrayList {
      
      public static void main(String[] args) {
          Scanner input = new Scanner(System.in);
          ArrayList<String> clientes = new ArrayList<String>();
          System.out.println(clientes.isEmpty());
          for (int i = 0; i < 4; i++)
          {
              String cliente = input.nextLine();
              clientes.add(cliente);
          }
          System.out.println(clientes);
          System.out.println(clientes.isEmpty());
      }  
    }
    

    Considerando 4 nomes: Maria, João, José e Paulo, os comandos de impressão na tela resultarão em:

    true
    [Maria, João, José, Paulo]
    false
    

    Removendo Elementos

    Mas, por algum motivo, José não é mais cliente da loja. Ele pode ser removido através do comando abaixo:

    clientes.remove("José");
    

    Ou então, caso haja conhecimento do índice onde está localizado o nome dele:

    clientes.remove(2);
    

    Se imprimirmos novamente a ArrayList na tela, veremos que o nome dele foi removido.

    System.out.println(clientes);
    

    A saída será

    [Maria, João, Paulo]
    

    Sorteando Elementos

    O sorteio de elementos é implementado na interface Collections, então se faz necessário a importação dela para o código.

    import java.util.Collections;
    

    Dessa forma, o comando a seguir poderá ser utilizado, e podemos verificar o funcionamento ao imprimir novamente na tela a ArrayList:

    Collections.shuffle(clientes);
    System.out.println(clientes);
    

    A saída será

    [Paulo, Maria, João];
    

    A fim de obter, portanto, o primeiro colocado desse sorteio, utilizamos o seguinte comando:

    System.out.println(clientes.get(0));
    

    Assim obteremos:

    Paulo
    

    Conclusão

    Como visto, há utilidades reais para o uso de ArrayList, uma poderosa ferramenta, no dia a dia. Para mais informações nos vários métodos que podem ser utilizados, confira a documentação oficial sobre ArrayList e mais sobre o framework Collections.

    Compartilhe
    Comentários (0)