Listas em Java são par­ti­cu­lar­mente adequadas a cenários em que o tamanho de um conjunto de dados não é claro desde o princípio ou se o tamanho esperado mudar com o tempo. Nossos exemplos ensinarão você a usar Java lists e apre­sen­ta­rão as operações que você pode realizar com elas.

Para que servem listas em Java?

Listas são uma das es­tru­tu­ras de dados mais fun­da­men­tais da pro­gra­ma­ção em Java, podendo ser usadas de di­fe­ren­tes formas. Elas contêm elementos or­ga­ni­za­dos em uma sequência ordenada, que podem ser adi­ci­o­na­dos, mo­di­fi­ca­dos, excluídos e con­sul­ta­dos em uma lista. Listas em Java podem conter objetos que pertencem a di­fe­ren­tes classes. Elas também são capazes de armazenar elementos du­pli­ca­dos e nulos. Além disso, Java lists suportam classes e métodos genéricos, ga­ran­tindo a segurança de tipos.

Listas são bastante usadas em apli­ca­ti­vos de banco de dados para armazenar e acessar grandes conjuntos de dados a partir de consultas. Em in­ter­fa­ces gráficas de usuário (GUI), listas em Java são fre­quen­te­mente usadas para exibir listas de elementos, como opções em um menu suspenso ou itens de uma loja virtual.

Listas em Java também são in­dis­pen­sá­veis em al­go­rit­mos e es­tru­tu­ras de dados. Elas são usadas em al­go­rit­mos de ordenação, al­go­rit­mos de busca e em es­tru­tu­ras de pilha e fila, por exemplo. Em apli­ca­ti­vos de rede, listas podem ajudar a facilitar a gestão de conexões e sockets.

Quais métodos de listas em Java existem?

Listas em Java im­ple­men­tam a interface Col­lec­tion e devem ser im­por­ta­das do pacote java.util. Já as classes de im­ple­men­ta­ção podem ser es­co­lhi­das com Java ArrayList, Lin­ke­dList, Vector e Stack. É possível declarar di­fe­ren­tes ins­tân­cias de listas com o seguinte código:

List linkedList = new LinkedList(); // LinkedList
List arrayList = new ArrayList(); // ArrayList
List vecList = new Vector(); // Vector
List stackList = new Stack(); // Stack
Java

Aqui estão alguns dos métodos mais im­por­tan­tes que você pode usar em Java lists:

  1. int size(): Determina o número de elementos em uma lista.
  2. void add(int index, E element): Adiciona um elemento em uma posição es­pe­cí­fica.
  3. boolean isEmpty(): Verifica se uma lista está vazia.
  4. void clear(): Remove todos os elementos de uma lista.
  5. boolean contains(Object o): Retorna o valor true se o objeto o estiver na lista.
  6. boolean add(E e): Adiciona um elemento ao final de uma lista.
  7. boolean remove(Object o): Remove a primeira ocor­rên­cia de um elemento.
  8. E get(int index): Retorna o elemento em um índice es­pe­ci­fi­cado.
  9. E set(int index, E element): Substitui ou insere um elemento em um índice es­pe­ci­fi­cado.
  10. Object[] toArray(): Retorna um array contendo os elementos de uma lista.
  11. List<E> subList(int fromIndex, int toIndex): Captura todos os elementos dentro do intervalo es­pe­ci­fi­cado.
  12. default void replaceAll(UnaryOperator<E> operator): Método padrão no Java 8 que aplica ope­ra­do­res em Java unários a cada elemento e depois substitui cada elemento com o resultado da operação.

Como usar listas em Java

Abaixo, apre­sen­ta­re­mos métodos comumente uti­li­za­dos com listas em Java. Entre eles estão métodos que convertem arrays em listas e vice-versa, além de ordenarem, re­cu­pe­ra­rem e mo­di­fi­ca­rem elementos.

Converter array em lista

Para converter um array em lista, você pode iterar sobre o array usando loops e adicionar os elementos à lista um a um, usando o método add():

import java.util.*;
public class ArrayToList{
    public static void main(String args[]){
        // Criando um Array
        String[] colors = {"azul", "verde", "vermelho", "amarelo"};
        System.out.println("Array: " + Arrays.toString(colors));
        // Convertendo Array para Lista
        List<String> list = new ArrayList<String>();
        for (String color : colors) {
            list.add(color);
        }
        System.out.println("Lista: " + list);
    }
}
Java

O código resulta na seguinte saída:

Array: [azul, verde, vermelho, amarelo]
Lista: [azul, verde, vermelho, amarelo]
Java

Converter lista em array

Com o método toArray(), você pode converter uma lista em array:

import java.util.*;
public class ListToArray{
    public static void main(String args[]){
        List<String> days = new ArrayList<String>();
        days.add("Segunda-feira");
        days.add("Terça-feira");
        days.add("Quarta-feira");
        days.add("Quinta-feira");
        days.add("Sexta-feira");
        days.add("Sábado");
        days.add("Domingo");
        // Convertendo ArrayList para Array
        String[] array = days.toArray(new String[days.size()]);
        System.out.println("Array: " + Arrays.toString(array));
        System.out.println("Lista: " + days);
    }
}
Java

Na saída, você observará que os elementos no array e na lista são idênticos:

Array: [Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo]
Lista: [Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo]
Java

Chamar e alterar elementos de uma lista

Com o método get(), você pode acessar um elemento em um índice es­pe­cí­fico. O método set(), por sua vez, permite subs­ti­tuir um elemento por outro em uma posição es­pe­ci­fi­cada da lista:

import java.util.*;
public class ListExample{
    public static void main(String args[]){
        // Criando uma Lista
        List<String> letras = new ArrayList<String>();
        // Adicionando elementos
        letras.add("a");
        letras.add("b");
        letras.add("c");
        // get()
        System.out.println("Elemento no índice 1: " + letras.get(1));
        // set()
        letras.set(2, "d");
        for (String letra : letras)
            System.out.println(letra);
    }
}
Java

Como os índices em Java começa no 0, obtemos o seguinte resultado:

Elemento no índice 1: b
a
b
d
Java

Ordenar lista

Você pode ordenar uma lista Java usando o método .sort(), da classe Col­lec­ti­ons. Você pode iterar sobre a lista usando um loop e imprimir os elementos no terminal, um a um:

import java.util.*;
class SortArrayList{
    public static void main(String args[]){
        // Criando uma lista de números
        List<Integer> numeros = new ArrayList<Integer>();
        numeros.add(4);
        numeros.add(57);
        numeros.add(92);
        numeros.add(26);
        // Ordenando
        Collections.sort(numeros);
        for (Integer numero : numeros)
            System.out.println(numero);
    }
}
Java

Os números na Lista Java são exibidos do menor para o maior:

4
26
57
92
Java
Ir para o menu principal