English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manual Básico de Java

Controle de fluxo do Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Conjunto Java Map

Conjunto Java Set

Entrada e saída do Java (I/O)

Reader do Java/Writer

Outros tópicos do Java

ArrayList Java

Neste tutorial, vamos aprender sobre a classe ArrayList do Java. Vamos aprender diferentes operações e métodos do ArrayList através de exemplos.

A classe ArrayList é uma implementação do interface List, permitindo-nos criar arrays ajustáveis em tamanho.

Array Java e ArrayList

Em Java, precisamos declarar o tamanho do array antes de podermos usá-lo. Uma vez declarado o tamanho do array, é difícil alterá-lo.

Para resolver esse problema, podemos usar a classe ArrayList. A classe ArrayList existente no pacote java.util nos permite criar arrays ajustáveis em tamanho.

Diferente dos arrays, quando adicionamos ou removemos elementos de uma lista de arrays (objeto da classe ArrayList), ela pode ajustar automaticamente sua capacidade. Portanto, a lista de arrays também é chamada de array dinâmico.

Criar ArrayList

Este é o método que podemos usar para criar listas de arrays em Java:

ArrayList<Type> arrayList = new ArrayList<>();

Aqui, Type indica o tipo da lista de array. Por exemplo,

//Criar lista de array de tipo inteiro
ArrayList<Integer> arrayList = new ArrayList<>();
//Criar lista de array de tipo string
ArrayList<String> arrayList = new ArrayList<>();

No programa acima, usamos Integer e String. Aqui, Integer é a classe de envoltório correspondente ao tipo int.

As classes de envoltório são classes que envolvem tipos de dados primitivos. Por exemplo, a classe Integer envolve o tipo int, a classe Float envolve o tipo float, etc.

Atenção:Não podemos criar uma lista de array de tipos de dados primitivos (como int, float, char, etc.). Em vez disso, devemos usar suas classes de envoltório correspondentes.

Para strings, String é uma classe e não há classe de envoltório. Portanto, usamos String conforme está.

Também podemos usar o interface List para criar ArrayList. Isso porque a classe ArrayList implementou o interface List.

List<String> list = new ArrayList<>();

Métodos de ArrayList

ArrayList oferece várias métodos que permitem que execute operações de lista de array.

Adicionar elemento a ArrayList

1. Usar método add()

Para adicionar um único elemento a uma lista de array, usamos o método add(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elemento
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList: " + "") + animals);
    }
}

Resultados de saída

ArrayList: [Dog, Cat, Horse]

2. Usar número de índice

Também podemos usar índices para adicionar elementos a uma lista de array. Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elemento
        animals.add(0,"Cão");
        animals.add(1,"Gato");
        animals.add(2,"Cavalo");
        System.out.println("ArrayList: " + "") + animals);
    }
}

Resultados de saída

ArrayList: [Dog, Cat, Horse]

3. Adicionar elementos de uma lista de array a outra lista de array

Para adicionar todos os elementos de uma lista de array a uma nova lista de array, use o método addAll(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> mammals = new ArrayList<>();
        mammals.add("Cão");
        mammals.add("Gato");
        mammals.add("Cavalo");
        System.out.println("Mammals: " + mammals);
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Crocodile");
        // Adicionar todos os elementos de mammals ao animals
        animals.addAll(mammals);
        System.out.println("Animais: " + animals);
    }
}

Resultados de saída

Mamíferos: [Cão, Gato, Cavalo]
Animais: [Crocodilo, Cão, Gato,  Cavalo]

inicializar ArrayList usando asList()

diferente de um array, não podemos inicializar diretamente uma lista de arrays. Mas podemos usar o método asList() da classe Arrays para alcançar o mesmo efeito.

para usar o método asList(), devemos primeiro importar o pacote java.util.Arrays.

por exemplo,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //Criar lista de arrays
        ArrayList<String> animals = new ArrayList<>(Arrays.asList("Gato", "Vaca", "Cão"));
        System.out.println("ArrayList: " + "") + animals);
        //acessar elemento da lista de arrays
        String element = animals.get(1);
        System.out.println("acessar elemento: " + element);
    }
}

Resultados de saída

ArrayList: [Gato, Vaca, Cão]
acessar elemento: Vaca

neste exemplo, note a seguinte expressão:

new ArrayList<>(Arrays.asList("Gato", "Vaca", "Cão"));

aqui, primeiro usamos3uma lista de arrays de elementos: "Gato", "Vaca" e "Cão". Em seguida, o método asList() é usado para converter o array em uma lista de arrays.

acessar elementos da ArrayList

1.usar método get()

para acessar elementos de uma lista de arrays aleatoriamente, usamos o método get(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Cavalo ");
        animals.add(" Gato ");
        System.out.println("ArrayList: " + "") + animals);
        //obter elemento da lista de arrays
        String str = animals.get(0);
        System.out.print("o elemento na posição 0: " + str);
    }
}

Resultados de saída

ArrayList: [Dog, Horse, Cat]
o elemento na posição 0: Cão

2.usar método iterator()

para acessar os elementos de uma lista de arrays em ordem, usamos o método iterator(). Devemos importar o pacote java.util.Iterator para usar esse método. Por exemplo,

import java.util.ArrayList;
import java.util.Iterator;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        animals.add("Zebra");
        //criar um objeto Iterator
        Iterator<String> iterate = animals.iterator();
        System.out.print("ArrayList: ");
        //usar métodos do Iterator para acessar elementos
        while(iterate.hasNext()){
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

Resultados de saída

ArrayList: Cachorro, Gato, Cavalo, Zebra,

Considerações:

  • hasNext() - se a lista de arrays tiver o próximo elemento, retorna true.

  • next()  -  retornar o próximo elemento da lista de arrays

alterar elemento ArrayList

Para alterar um elemento da lista de arrays, podemos usar o método set(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList: " + "") + animals);
        //alterar elemento da lista de arrays
        animals.set(2, "Zebra");
        System.out.println("ArrayList modificado: "); + animals);
    }
}

Resultados de saída

ArrayList: [Dog, Cat, Horse]
ArrayList modificado: [Cachorro, Gato, Zebra]

remover elemento ArrayList

1.usar método remove()

Para excluir um elemento da lista de arrays, podemos usar o método remove(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList inicial: "); + animals);
        //do índice2remover elemento
        String str = animals.remove(2);
        System.out.println("ArrayList final: "); + animals);
        System.out.println("excluir elemento: "); + str);
    }
}

Resultados de saída

ArrayList inicial: [Cachorro, Gato, Cavalo]
ArrayList final: [Cachorro, Gato]
excluir elemento: Horse

2.usar método removeAll()

Para excluir todos os elementos da lista de arrays, usamos o método removeAll(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // Adicionar elementos ao ArrayList
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList inicial: "); + animals);
        // excluir todos os elementos
        animals.removeAll(animals);
        System.out.println("ArrayList final: "); + animals);
    }
}

Resultados de saída

ArrayList inicial: [Cachorro, Gato, Cavalo]
ArrayList final: []

3.usar método clear()

também podemos usar o método clear() para excluir todos os elementos da lista de arrays. Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList inicial: "); + animals);
        //excluir todos os elementos
        animals.clear();
        System.out.println("ArrayList final: "); + animals);
    }
}

Resultados de saída

ArrayList inicial: [Cachorro, Gato, Cavalo]
ArrayList final: []

Atenção:o método clear() é mais eficiente que o método removeAll().

percorrer ArrayList

1.usar loop for

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //Criar lista de arrays
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add(" Gato ");
        animals.add(" Cão ");
        System.out.println("ArrayList: " + "") + animals);
        //usar loop for
        System.out.println("Acessar todos os elementos: ");
        for(int i = 0; i < animals.size(); i++) {
            System.out.print(animals.get(i));
            System.out.print(", ");
        }
    }
}

Resultados de saída

ArrayList: [Cow, Cat, Dog]
Acessar todos os elementos:
Cow, Cat, Dog,

2.usar loop forEach

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // Criar lista de arrays
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add(" Gato ");
        animals.add(" Cão ");
        System.out.println("ArrayList: " + "") + animals);
        //Usar loop forEach
        System.out.println("Acessar todos os elementos: ");
        for(String animal : animals) {
            System.out.print(animal);
            System.out.print(", ");
        }
    }
}

Resultados de saída

ArrayList: [Cow, Cat, Dog]
Acessar todos os elementos:
Cow, Cat, Dog,

Nos dois exemplos, usamos um loop para acessar cada elemento da lista de arrays.

Obter o comprimento do ArrayList

Para obter o comprimento de uma lista de arrays, usamos o método size(). Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // Adicionar elementos à arrayList
        animals.add(" Cão ");
        animals.add(" Cavalo ");
        animals.add(" Gato ");
        System.out.println("ArrayList: " + "") + animals);
        //Obter o tamanho da arrayList
        System.out.println("tamanho da arrayList: ", + animals.size());
    }
}

Resultados de saída

ArrayList: [Dog, Horse, Cat]
tamanho da arrayList: 3

Ordenar elementos do ArrayList

Para ordenar os elementos de uma lista de arrays, usamos o método sort() da classe Collections. Para usá-lo, devemos primeiro importar o pacote java.util.Collections.

Por padrão, a ordenação é em ordem alfabética ou numérica. Por exemplo,

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cavalo ");
        animals.add("Zebra");
        animals.add(" Cão ");
        animals.add(" Gato ");
        System.out.println("ArrayList não ordenada: ", + animals);
        //Ordenar a lista de arrays
        Collections.sort(animals);
        System.out.println("ArrayList ordenada: ", + animals);
    }
}

Resultados de saída

ArrayList não ordenada: [Horse, Zebra, Dog, Cat]
ArrayList ordenada: [Cat, Dog, Horse, Zebra]

Para obter mais informações sobre a ordenação de listas de arrays, acesse Java ArrayList sort.

Conversão de ArrayList para array Java

No Java, podemos usar o método toArray() para converter uma lista de arrays em um array. Por exemplo,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos à lista de arrays
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList: " + "") + animals);
        //Criar um novo array de tipo String
        String[] arr = new String[animals.size()];
        //Converter ArrayList para array
        animals.toArray(arr);
        System.out.print("Array: ");
        for(String item: arr) {
            System.out.print(item+", ");
        }
    }
}

Resultados de saída

ArrayList: [Dog, Cat, Horse]
Array: Cão, Gato, Cavalo,

Conversão de Array Java para ArrayList

Também podemos converter um array em uma lista de arrays. Para isso, podemos usar o método asList() da classe Arrays.

Para usar asList(), devemos primeiro importar o pacote java.util.Arrays. Por exemplo,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //Criar um array de tipo String
        String[] arr = {"Cão", "Gato", "Cavalo"};
        System.out.print("Array: ");
        //Imprimir array
        for(String str: arr) {
            System.out.print(str);
            System.out.print(" ");
        }
        //Criar ArrayList a partir de um array
        ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr));
        System.out.println("\nArrayList: " + "") + animals);
    }
}

Resultados de saída

Array: Dog, Gato, Cavalo
ArrayList: [Dog, Cat, Horse]

No programa acima, primeiro criamos um array de tipo String arr.

Em seguida, usamos o método asList() para converter um array em uma lista de arrays.

Conversão de ArrayList Java para String

Para converter uma lista de arrays em uma string, você pode usar o método toString(). Por exemplo

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //Adicionar elementos ao ArrayList
        animals.add(" Cão ");
        animals.add(" Gato ");
        animals.add(" Cavalo ");
        System.out.println("ArrayList: " + "") + animals);
        //Converte ArrayList em string
        String str = animals.toString();
        System.out.println("String: " + str);
    }
}

Resultados de saída

ArrayList: [Dog, Cat, Horse]
String: [Dog, Cat, Horse]

Atenção: toString() converte toda a lista de arrays em um único String.

Outros métodos ArrayList

MétodosDescrição do conteúdo
clone()

Crie uma nova lista de arrays com os mesmos elementos, tamanho e capacidade.

contains()

Procure o elemento especificado na lista de arrays e retorne um valor booleano.

ensureCapacity()

Especifique o número total de elementos que a lista de arrays pode conter.

isEmpty()

Verifique se a lista de arrays está vazia.

indexOf()

Procure o elemento especificado na lista de arrays e retorne o índice do elemento.

trimToSize()

Reduza o tamanho da capacidade da lista de arrays para o tamanho atual.