AFF Education Construa seu Futuro

Aula 56 - Métodos do ArrayList

Métodos Principais do ArrayList

O ArrayList possui diversos métodos úteis que facilitam a manipulação de listas. Vamos explorar os principais métodos com exemplos práticos.

Métodos mais usados:

Método add() - Adicionar Elementos

O método add() permite adicionar elementos ao ArrayList:

import java.util.ArrayList;

public class MetodoAdd {
    public static void main(String[] args) {
        ArrayList<String> frutas = new ArrayList<>();
        
        // 1. add(elemento) - adiciona no final
        frutas.add("Maçã");
        frutas.add("Banana");
        frutas.add("Laranja");
        System.out.println("Lista inicial: " + frutas);
        
        // 2. add(índice, elemento) - adiciona em posição específica
        frutas.add(1, "Uva"); // Adiciona "Uva" na posição 1
        System.out.println("Após add(1, 'Uva'): " + frutas);
        
        // 3. Adicionando no início
        frutas.add(0, "Morango");
        System.out.println("Após add(0, 'Morango'): " + frutas);
        
        // 4. Adicionando múltiplos elementos
        frutas.add("Abacaxi");
        frutas.add("Manga");
        frutas.add("Kiwi");
        System.out.println("Lista final: " + frutas);
    }
}

Lista inicial: [Maçã, Banana, Laranja]

Após add(1, 'Uva'): [Maçã, Uva, Banana, Laranja]

Após add(0, 'Morango'): [Morango, Maçã, Uva, Banana, Laranja]

Lista final: [Morango, Maçã, Uva, Banana, Laranja, Abacaxi, Manga, Kiwi]

Método get() - Obter Elementos

O método get() retorna o elemento em uma posição específica:

import java.util.ArrayList;

public class MetodoGet {
    public static void main(String[] args) {
        ArrayList<String> cores = new ArrayList<>();
        cores.add("Vermelho");
        cores.add("Verde");
        cores.add("Azul");
        cores.add("Amarelo");
        cores.add("Roxo");
        
        // Acessando elementos por índice
        System.out.println("Primeira cor: " + cores.get(0));
        System.out.println("Segunda cor: " + cores.get(1));
        System.out.println("Terceira cor: " + cores.get(2));
        
        // Última cor (size() - 1)
        System.out.println("Última cor: " + cores.get(cores.size() - 1));
        
        // Percorrendo com get()
        System.out.println("\nTodas as cores:");
        for (int i = 0; i < cores.size(); i++) {
            System.out.println((i + 1) + ". " + cores.get(i));
        }
    }
}

Primeira cor: Vermelho

Segunda cor: Verde

Terceira cor: Azul

Última cor: Roxo

Todas as cores:

1. Vermelho

2. Verde

3. Azul

4. Amarelo

5. Roxo

Método set() - Modificar Elementos

O método set() substitui o elemento em uma posição específica:

import java.util.ArrayList;

public class MetodoSet {
    public static void main(String[] args) {
        ArrayList<String> animais = new ArrayList<>();
        animais.add("Gato");
        animais.add("Cachorro");
        animais.add("Coelho");
        animais.add("Pássaro");
        
        System.out.println("Lista original: " + animais);
        
        // Modificando elementos
        animais.set(0, "Leão"); // Substitui "Gato" por "Leão"
        System.out.println("Após set(0, 'Leão'): " + animais);
        
        animais.set(2, "Hamster"); // Substitui "Coelho" por "Hamster"
        System.out.println("Após set(2, 'Hamster'): " + animais);
        
        // set() retorna o valor antigo
        String antigo = animais.set(3, "Papagaio");
        System.out.println("Após set(3, 'Papagaio'): " + animais);
        System.out.println("Valor antigo removido: " + antigo);
    }
}

Lista original: [Gato, Cachorro, Coelho, Pássaro]

Após set(0, 'Leão'): [Leão, Cachorro, Coelho, Pássaro]

Após set(2, 'Hamster'): [Leão, Cachorro, Hamster, Pássaro]

Após set(3, 'Papagaio'): [Leão, Cachorro, Hamster, Papagaio]

Valor antigo removido: Pássaro

Método remove() - Remover Elementos

O método remove() pode remover por índice ou por valor:

import java.util.ArrayList;

public class MetodoRemove {
    public static void main(String[] args) {
        ArrayList<String> numeros = new ArrayList<>();
        numeros.add("Um");
        numeros.add("Dois");
        numeros.add("Três");
        numeros.add("Quatro");
        numeros.add("Cinco");
        
        System.out.println("Lista original: " + numeros);
        
        // 1. remove(índice) - remove por posição
        numeros.remove(0); // Remove o primeiro elemento
        System.out.println("Após remove(0): " + numeros);
        
        // 2. remove(objeto) - remove por valor
        numeros.remove("Quatro"); // Remove o elemento "Quatro"
        System.out.println("Após remove('Quatro'): " + numeros);
        
        // 3. Removendo o último elemento
        numeros.remove(numeros.size() - 1);
        System.out.println("Após remover último: " + numeros);
        
        System.out.println("\nTamanho final: " + numeros.size());
    }
}

Lista original: [Um, Dois, Três, Quatro, Cinco]

Após remove(0): [Dois, Três, Quatro, Cinco]

Após remove('Quatro'): [Dois, Três, Cinco]

Após remover último: [Dois, Três]

Tamanho final: 2

Métodos size() e clear()

O size() retorna o tamanho e o clear() limpa toda a lista:

import java.util.ArrayList;

public class SizeEClear {
    public static void main(String[] args) {
        ArrayList<Integer> numeros = new ArrayList<>();
        
        // Adicionando elementos
        for (int i = 1; i <= 5; i++) {
            numeros.add(i * 10);
        }
        
        System.out.println("Lista: " + numeros);
        System.out.println("Tamanho: " + numeros.size());
        
        // Removendo um elemento
        numeros.remove(2);
        System.out.println("\nApós remover índice 2:");
        System.out.println("Lista: " + numeros);
        System.out.println("Novo tamanho: " + numeros.size());
        
        // Limpando toda a lista
        numeros.clear();
        System.out.println("\nApós clear():");
        System.out.println("Lista: " + numeros);
        System.out.println("Tamanho: " + numeros.size());
        System.out.println("Está vazia? " + numeros.isEmpty());
    }
}

Lista: [10, 20, 30, 40, 50]

Tamanho: 5

Após remover índice 2:

Lista: [10, 20, 40, 50]

Novo tamanho: 4

Após clear():

Lista: []

Tamanho: 0

Está vazia? true

Métodos contains() e isEmpty()

Métodos para verificar conteúdo da lista:

import java.util.ArrayList;

public class ContainsEIsEmpty {
    public static void main(String[] args) {
        ArrayList<String> linguagens = new ArrayList<>();
        
        // Verificando se está vazia
        System.out.println("Lista vazia? " + linguagens.isEmpty());
        
        // Adicionando elementos
        linguagens.add("Java");
        linguagens.add("Python");
        linguagens.add("JavaScript");
        
        System.out.println("\nLista: " + linguagens);
        System.out.println("Lista vazia? " + linguagens.isEmpty());
        
        // Verificando se contém elementos
        System.out.println("\nContém 'Java'? " + linguagens.contains("Java"));
        System.out.println("Contém 'C++'? " + linguagens.contains("C++"));
        System.out.println("Contém 'Python'? " + linguagens.contains("Python"));
        
        // Busca case-sensitive
        System.out.println("\nContém 'java' (minúsculo)? " + linguagens.contains("java"));
    }
}

Lista vazia? true

Lista: [Java, Python, JavaScript]

Lista vazia? false

Contém 'Java'? true

Contém 'C++'? false

Contém 'Python'? true

Contém 'java' (minúsculo)? false

Outros Métodos Úteis

Mais métodos importantes do ArrayList:

import java.util.ArrayList;

public class OutrosMetodos {
    public static void main(String[] args) {
        ArrayList<String> nomes = new ArrayList<>();
        nomes.add("Ana");
        nomes.add("Bruno");
        nomes.add("Carlos");
        nomes.add("Diana");
        
        System.out.println("Lista original: " + nomes);
        
        // indexOf() - retorna o índice do elemento
        int indice = nomes.indexOf("Carlos");
        System.out.println("\nÍndice de 'Carlos': " + indice);
        
        // lastIndexOf() - último índice do elemento
        nomes.add("Ana"); // Duplicando "Ana"
        System.out.println("Primeiro índice de 'Ana': " + nomes.indexOf("Ana"));
        System.out.println("Último índice de 'Ana': " + nomes.lastIndexOf("Ana"));
        
        // toString() - já usado automaticamente pelo println
        String texto = nomes.toString();
        System.out.println("\nComo String: " + texto);
        
        // toArray() - converte para array
        Object[] array = nomes.toArray();
        System.out.println("\nPrimeiro elemento do array: " + array[0]);
        
        // addAll() - adiciona outra coleção
        ArrayList<String> novos = new ArrayList<>();
        novos.add("Eduardo");
        novos.add("Fernanda");
        nomes.addAll(novos);
        System.out.println("\nApós addAll(): " + nomes);
    }
}

Lista original: [Ana, Bruno, Carlos, Diana]

Índice de 'Carlos': 2

Primeiro índice de 'Ana': 0

Último índice de 'Ana': 4

Como String: [Ana, Bruno, Carlos, Diana, Ana]

Primeiro elemento do array: Ana

Após addAll(): [Ana, Bruno, Carlos, Diana, Ana, Eduardo, Fernanda]

Tabela Resumo dos Métodos

Método Descrição Exemplo
add(elemento) Adiciona elemento no final lista.add("item")
add(índice, elemento) Adiciona em posição específica lista.add(0, "item")
get(índice) Retorna elemento na posição lista.get(0)
set(índice, elemento) Substitui elemento na posição lista.set(0, "novo")
remove(índice) Remove elemento na posição lista.remove(0)
remove(objeto) Remove elemento por valor lista.remove("item")
size() Retorna o tamanho lista.size()
clear() Remove todos os elementos lista.clear()
contains(objeto) Verifica se contém elemento lista.contains("item")
isEmpty() Verifica se está vazia lista.isEmpty()
indexOf(objeto) Retorna índice do elemento lista.indexOf("item")

Exercícios

Teste seus conhecimentos sobre métodos do ArrayList em Java:

1. Qual método adiciona um elemento no final do ArrayList?

2. Qual método retorna o elemento na posição 3 de um ArrayList?

3. Como modificar o elemento na posição 2 para "Novo"?

4. Qual método remove TODOS os elementos de um ArrayList?

5. Qual método verifica se o ArrayList contém o elemento "Java"?

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. Qual método remove o elemento da posição 2 de um ArrayList?

2. O método lista.get(0) faz o quê?