ARRAYLIST EM JAVA
Discentes:
• Adriano Ernesto Fereira
• Manuel Gondola Junior
• Virginia Victorino Samo
CONTEUDO
Introdução
O que é uma ArrayList?
Como Declarar e Inicializar uma ArrayList
Métodos Principais e Operações Comuns
Performance e Complexidade Computacional
Vantagens e Desvantagens
Casos de Uso Típicos
Exemplo Prático Avançado
Alternativas à ArrayList
Conclusão
Bibliografia
INTRODUÇÃO
A ArrayList é uma das classes mais utilizadas no
Java Collections Framework, sendo fundamental em
aplicações que requerem armazenamento dinâmico
de dados. Este trabalho explora detalhadamente a
ArrayList no contexto da Programação Orientada a
Objetos (POO), abordando:
Definição e características
Diferenças entre ArrayList e arrays tradicionais
Métodos essenciais e operações comuns
Vantagens, desvantagens e casos de uso
Exemplos práticos com código comentado
Performance e boas práticas
Alternativas à ArrayList
O QUE É UMA ARRAYLIST?
A ArrayList é uma implementação
redimensionável de um array que pertence
ao pacote [Link]. Funciona como uma
lista dinâmica que permite:
Armazenar elementos de qualquer tipo
(usando Generics)
Acessar, adicionar e remover elementos
eficientemente
Crescer automaticamente conforme
necessário
2.1. COMPARAÇÃO ENTRE
ARRAYS E ARRAYLIST
Característica Array Tradicional ArrayList
Tamanho Fixo (definido na criação) Dinâmico (cresce
automaticamente)
Manipulação de elementos Menos flexível Métodos úteis (add(),
remove())
Desempenho Mais rápido em acesso direto Ligeiramente mais lento
devido a overhead
Uso em POO Menos integrado Melhor adaptado a coleções de
objetos
3. COMO DECLARAR E
INICIALIZAR UMA
ARRAYLIST
3.1. SINTAXE BÁSICA
java
import [Link];
ArrayList<Tipo> nomeLista = new
ArrayList<>();
Tipo: Define o tipo de dados armazenados
(ex: String, Integer,
ObjetoPersonalizado).
3.2. EXEMPLOS DE
INICIALIZAÇÃO
java
ArrayList<String> nomes = new
ArrayList<>();
ArrayList<Integer> idades = new
ArrayList<>(20); // Capacidade inicial = 20
ArrayList<Double> preços = new
ArrayList<>([Link](10.5, 20.3, 30.0));
4. MÉTODOS PRINCIPAIS
E OPERAÇÕES COMUNS
4.1. ADIÇÃO DE
ELEMENTOS
Método Descrição Exemplo
add(E elemento) Adiciona ao final da lista [Link]("Ana");
add(int índice, E elem) Insere num índice específico [Link](1, "João");
addAll(Collection c) Adiciona todos os elementos de [Link](outraLista);
outra lista
4.2. REMOÇÃO DE
ELEMENTOS
Método Descrição Exemplo
remove(int índice) Remove pelo índice [Link](0);
remove(Object o) Remove a primeira ocorrência [Link]("Ana");
do objeto
clear() Limpa toda a lista [Link]();
DECLARAÇÃO E INICIALIZAÇÃO DE
ARRAYLIST
import [Link];
public class ExemploArrayList {
public static void main(String[] args) {
// Declaração de uma ArrayList para armazenar
Strings
ArrayList<String> frutas = new ArrayList<>();
// Adicionando elementos à lista
[Link]("Maçã");
[Link]("Banana");
[Link]("Laranja");
// Imprimindo a lista de frutas
[Link]("Frutas: " + frutas); }
}
REMOÇÃO DE ELEMENTOS
import [Link];
import [Link];
public class OrdenacaoArrayList {
public static void main(String[] args)
{ ArrayList<String> nomes = new
ArrayList<>(); [Link]("Carlos");
[Link]("Ana");
[Link]("Bruno");
// Ordenando a lista
[Link](nomes);
// Imprimindo a lista ordenada
[Link]("Nomes ordenados: "
+ nomes); }
}
4.3. ACESSO E CONSULTA
Método Descrição Exemplo
get(int índice) Retorna o elemento no índice String nome = [Link](0);
contains(Object o) Verifica se o elemento existe boolean existe =
[Link]("Ana");
indexOf(Object o) Retorna o índice da primeira int pos =
ocorrência [Link]("Ana");
4.4. ITERAÇÃO SOBRE
UMA ARRAYLIST
For-each loop (recomendado para leitura):
java
for (String nome : nomes) {
[Link](nome);
}
Iterator (permite remoção segura durante iteração):
java
Iterator<String> it = [Link]();
while ([Link]()) {
String nome = [Link]();
if ([Link]("Ana")) {
[Link](); // Remove seguro
} }
5. PERFORMANCE E
COMPLEXIDADE
COMPUTACIONAL
Operação Complexidade Explicação
add(E elemento) O(1) amortizado Redimensionamento ocasional
do array interno
add(int índice, E elem) O(n) Requer deslocamento de
elementos
get(int índice) O(1) Acesso direto ao array interno
remove(int índice) O(n) Deslocamento de elementos
após remoção
6. VANTAGENS E
DESVANTAGENS
6.1. VANTAGENS
Flexibilidade: Tamanho ajustável conforme
necessidade.
Facilidade de uso: Métodos intuitivos (add,
remove, contains).
Integração com POO: Armazena objetos e
usa Generics para segurança de tipos.
6.2. DESVANTAGENS
Overhead de memória: Consome mais
recursos que arrays tradicionais.
Operações de inserção/remoção lentas no
meio da lista (devido a deslocamentos).
ACESSO E CONSULTA DE
ELEMENTOS
import [Link];
public class ConsultaArrayList {
public static void main(String[] args)
{ ArrayList<Integer> numeros = new ArrayList<>();
[Link](10);
[Link](20);
[Link](30);
// Acessando um elemento pelo índice
int primeiroNumero = [Link](0); // 10
[Link]("Primeiro número: " + primeiroNumero);
// Verificando se um número está na lista
boolean existe = [Link](20); // true
[Link]("O número 20 está na lista? " +
existe); }
}
ITERAÇÃO SOBRE ARRAYLIST
import [Link];
public class IteracaoArrayList {
public static void main(String[] args)
{ ArrayList<String> animais = new
ArrayList<>(); [Link]("Cachorro");
[Link]("Gato");
[Link]("Pássaro");
// Usando um loop for-each para iterar
[Link]("Animais:");
for (String animal : animais)
{ [Link](animal); }
}
}
7. CASOS DE USO
TÍPICOS
Armazenamento de dados dinâmicos:
Listas de utilizadores, produtos, etc.
Substituição de arrays quando o tamanho é
desconhecido.
Implementação de pilhas ou filas (com
métodos auxiliares).
8. EXEMPLO PRÁTICO
AVANÇADO
java
import [Link];
import [Link];
public class GestaoAlunos {
public static void main(String[] args) {
ArrayList<String> alunos = new ArrayList<>();
// Adicionar alunos
[Link]("Carlos");
[Link]("Ana");
[Link]("Bruno");
// Ordenar alfabeticamente
[Link](alunos);
// Imprimir lista ordenada
[Link]("Alunos ordenados: " +
alunos);
// Verificar se a lista está vazia
if (![Link]()) {
[Link]("O primeiro aluno é: "
+ [Link](0));
}
// Converter para array tradicional
String[] arrayAlunos = [Link](new
String[0]);
}
}
Saída:
Alunos ordenados: [Ana, Bruno, Carlos]
O primeiro aluno é: Ana
9. ALTERNATIVAS À
ARRAYLIST
LinkedList: Melhor para inserções/remoções
frequentes no meio da lista.
Vector: Versão sincronizada (thread-safe) de
`ArrayList`.
HashSet: Quando a ordem não importa e é
necessário evitar duplicados.
ORDENAÇÃO DE ELEMENTOS
import [Link];
import [Link];
public class OrdenacaoArrayList {
public static void main(String[] args)
{ ArrayList<String> nomes = new ArrayList<>();
[Link]("Carlos");
[Link]("Ana");
[Link]("Bruno");
// Ordenando a lista
[Link](nomes);
// Imprimindo a lista ordenada
[Link]("Nomes ordenados: " + nomes);
}
}
10. CONCLUSÃO
A ArrayList é uma ferramenta essencial em
Java, especialmente em POO, devido à sua
flexibilidade e facilidade de uso. Embora não
seja a opção mais eficiente para todos os
cenários, é a escolha padrão para a maioria
das aplicações que requerem listas
dinâmicas.
Obrigado
pela
Atenção