Java ArrayList
O ArrayList
em Java faz parte da estrutura de coleções do Java e pode ser encontrado no pacote java.util
. É uma implementação de matriz redimensionável da interface List
, que oferece uma maneira conveniente de armazenar coleções de elementos de tamanho dinâmico.
Uso
ArrayList
é usado quando você precisa de um array flexível que pode crescer e diminuir de tamanho. Ele permite o acesso aleatório rápido e é adequado para cenários em que são necessárias operações de leitura frequentes.
Sintaxe
ArrayList<Type> arrayListName = new ArrayList<Type>();
Type
: O tipo de elementos na lista.arrayListName
: O nome da instânciaArrayList
.
Exemplos
Exemplo 1: Operações básicas
import java.util.ArrayList;
public class BasicArrayListExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Orange");
System.out.println("Fruits: " + fruits);
fruits.remove("Banana");
System.out.println("After removal: " + fruits);
System.out.println("First fruit: " + fruits.get(0));
}
}
Neste exemplo, um ArrayList
do tipo String
é criado para armazenar nomes de frutas. O método add()
é usado para inserir elementos, remove()
exclui um elemento e get()
recupera um elemento por seu índice.
Exemplo 2: Iteração em uma ArrayList
import java.util.ArrayList;
public class IterateArrayListExample {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
for (int number : numbers) {
System.out.println(number);
}
}
}
Este exemplo demonstra como você pode iterar em um ArrayList
usando um loop for-each
. É criado um ArrayList
do tipo Integer
e cada elemento é impresso no console.
Exemplo 3: Classificação de uma ArrayList
import java.util.ArrayList;
import java.util.Collections;
public class SortArrayListExample {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<>();
names.add("John");
names.add("Alice");
names.add("Bob");
Collections.sort(names);
System.out.println("Sorted names: " + names);
}
}
Neste exemplo, um ArrayList
do tipo String
é classificado usando o método Collections.sort()
, que organiza os elementos em ordem natural.
Operações adicionais
A classe ArrayList
fornece vários métodos para realizar operações nos elementos:
- Acesso a itens: Use o método
get()
para recuperar elementos por índice. - Modificação de itens: Use o método
set()
para alterar um elemento em um índice específico. - Remoção de itens: Use o método
remove()
para excluir um elemento por índice e o métodoclear()
para remover todos os elementos. - Obtendo o tamanho da ArrayList: Use o método
size()
para encontrar o número de elementos noArrayList
. - Usando outros tipos: Armazene diferentes tipos de dados em
ArrayList
usando classes de proteção para tipos primitivos (por exemplo,Integer
,Boolean
).
Dicas e práticas recomendadas
- Capacidade inicial: Se o tamanho do site
ArrayList
for conhecido antecipadamente, especifique uma capacidade inicial para melhorar o desempenho e reduzir a necessidade de redimensionamento.ArrayList list = new ArrayList<>(50); // Initial capacity of 50
- Tipo de segurança: Use genéricos para garantir a segurança do tipo e evitar erros de tempo de execução.
ArrayList numbers = new ArrayList<>(); // Type-safe declaration
- Evite o redimensionamento frequente: Minimize as adições e remoções frequentes de elementos para reduzir a sobrecarga das operações de redimensionamento.
- Use o Iterator para remoção segura: Ao remover elementos durante a iteração, use um
Iterator
para evitarConcurrentModificationException
.Iterator iterator = list.iterator(); while (iterator.hasNext()) { if (condition) { iterator.remove(); } }
- Considere o LinkedList para inserções/exclusões frequentes: Se forem necessárias inserções e exclusões frequentes, considere o uso do site
LinkedList
, que oferece melhor desempenho para essas operações.