ArrayList em Java: uma introdução para iniciantes [2022]
Publicados: 2022-11-22Um array é uma estrutura de dados amplamente difundida e essencial em todas as linguagens de programação com uma desvantagem – seu tamanho é fixo. Vamos ver como ArrayList em Java pode ajudar com isso.
Uma matriz pode ser de dois tipos: uma matriz estática ou uma matriz dinâmica. Uma matriz não pode ser aumentada dinamicamente em linguagens de programação como Java. Em vez disso, o tamanho do array é declarado durante a inicialização do array. Mas, em muitos casos, isso pode levar a muitos problemas. Para resolver esse problema, ArrayLists são usados em Java. O tamanho do array aumenta automaticamente quando um elemento é enviado para um ArrayList.
Neste artigo, você aprenderá sobre ArrayLists em Java. Você entenderá a principal diferença entre Array e ArrayList e também aprenderá sobre os diferentes tipos de ArrayLists e como usá-los.
Array vs. ArrayList
A principal diferença entre um Array e um ArrayList é que o tamanho de um Array é estático, mas o tamanho de um ArrayList pode ser dinâmico. Como um Array é fixo, o tempo para iterar sobre o array leva menos tempo do que um array dinâmico.
Existem também mais algumas diferenças entre eles.
- Um array estático pode ser unidimensional ou multidimensional, mas um ArrayList só pode ser unidimensional.
- Um Array é uma estrutura de dados primitiva disponível em Java. Mas um ArrayList faz parte de uma API do Collection Framework em Java. Ele é construído em cima de Arrays.
- Você pode declarar Arrays com tipos de dados primitivos. Tipos de dados primitivos não podem ser usados em um ArrayList. Se você quiser usar um tipo de dados primitivo, precisará usar a classe wrapper correspondente do tipo de dados.
Tipos de ArrayLists em Java
ArrayLists podem ser de qualquer tipo. Mas você precisará passar a classe wrapper correspondente porque não pode passar tipos de dados primitivos em um ArrayList.
Você pode adicionar tipos de dados simples, como inteiros ou strings, passando classes wrapper como Integer
ou String
.
Você também pode passar em tipos complexos como ArrayLists de ArrayLists, hashmaps, etc.
Vamos dar uma olhada em um exemplo de uso de uma classe personalizada dentro de um ArrayList.
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
No exemplo de código acima, um ArrayList do tipo User
é criado. Você aprenderá mais sobre os métodos usados no exemplo abaixo.
Criando um ArrayList em Java
Você já entendeu o básico de um ArrayList em Java. Agora vamos dar uma olhada na sintaxe de um ArrayList e, a seguir, também veremos como ele pode ser usado no código Java.
ArrayList<Type> listName = new ArrayList<>();
O trecho acima mostra a sintaxe de definição de um ArrayList. O Type
define o tipo do ArrayList. Por exemplo, se você deseja declarar um ArrayList de tipos de dados inteiros, pode passar <Integer>
. Observe que você não pode passar int
, pois é um tipo de dados primitivo.
Você também precisará importar o java.util.ArrayList
para usar ArrayList em seus programas. Aqui está um exemplo básico de um programa declarando um ArrayList:
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
No código acima, um ArrayList chamado arco- rainbow
do tipo String
é declarado.
Para trabalhar com o ArrayList, existem vários métodos disponíveis. Vamos dar uma olhada em alguns métodos.
O método add
A classe ArrayList fornece vários métodos para realizar operações como adicionar ou remover elementos, obter valores, definir um valor em uma posição específica, limpar um ArrayList, etc.
O primeiro método que veremos é o método add
.
O método add
é usado para adicionar um único item a um ArrayList
. A sintaxe para add
é mostrada abaixo.
arrayList.add(int i, Element)
Vamos entender a sintaxe agora. O primeiro parâmetro i
é um parâmetro opcional que representa a posição do índice onde o item que você deseja adicionar. O segundo parâmetro Element
é o elemento que você deseja adicionar. Vamos dar uma olhada em um exemplo agora.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
O rainbow.add("Violet")
adiciona um elemento ao final de um ArrayList. E o rainbow.add(0, "Red")
adiciona o elemento Red
à posição de índice 0
do ArrayList. O método add()
retorna true
quando um item é inserido com sucesso.

O método get
O método get
é usado para obter o valor de uma posição especificada de um ArrayList.
arrayList.get(int i);
O i
mostrado na sintaxe acima é a posição do índice. Por exemplo, se você deseja obter o item da posição de índice 1
, escreva arrayList.get(1)
.
rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
O código acima retornará Violet
do rainbow
ArrayList.
O método set
O método set
é usado para substituir o valor de um item. Por exemplo, se você quiser substituir o valor de um item na posição de índice 0
, escreva rainbow.set(0, "Purple")
, supondo que você tenha um ArrayList chamado rainbow
.
A sintaxe para o método set
é a seguinte,
arrayList.set(int i, Element);
Onde i
é a posição do índice e Element
é o valor do novo elemento.
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
No exemplo acima, adicionamos dois valores a um ArrayList chamado rainbow
. Primeiro adicionamos o elemento Violet
, depois na posição 0
do ArrayList adicionamos o item Red
. Neste ponto, o ArrayList completo se parece com isso, [Red, Violet]
.
Agora, o elemento na posição 1
do índice é substituído pelo valor Purple
usando o método set
. Depois de substituir o valor, o ArrayList ficará assim, [Red, Purple]
.
O método remove
O método remove
ArrayList é usado para remover um valor do ArrayList. Você pode passar o valor ou a posição do índice do valor que deseja remover. A sintaxe do método remove
é mostrada abaixo:
arrayList.remove(Object value); // or arrayList.remove(int i);
Vamos dar um exemplo para uma melhor compreensão do método. Suponha que você tenha um ArrayList chamado rainbow
com esses valores [Violet, Red, Green]
. Agora, se você quiser remover Red
do ArrayList, você pode escrever rainbow.remove("Red");
. Chamar esse método no arco- rainbow
ArrayList removerá o elemento Red
dele.
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
Você também pode passar a posição do índice para remover o item na posição do índice.
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
O método clear
Como o nome sugere, o método clear
remove todos os elementos de um ArrayList. A sintaxe é direta e não requer nenhum parâmetro.
arraylist.clear()
Vejamos um exemplo,
rainbow.clear(); System.out.println(rainbow); Output: []
O método clear
não retorna nenhum valor. Em vez disso, ele limpa o valor do ArrayList fornecido.
O método de size
O método size
retorna o tamanho do ArrayList fornecido. Este método também não aceita nenhum parâmetro. A sintaxe é mostrada abaixo.
arrayList.size();
O arrayList
é o nome do ArrayList aqui. Vamos entender o método size
com a ajuda de um exemplo.
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
Este método retorna o valor do tamanho de ArrayList. No exemplo acima, o rainbow
ArrayList consiste em três valores, então o método size
retorna 3.
Conclusão
Este artigo discutiu o que é um ArrayList e como ele difere de um Array. Também vimos como um ArrayList pode ser declarado e usado usando vários métodos disponíveis para a classe ArrayList.
Se você quiser se aprofundar no aprendizado de Java, confira estes cursos Java online.