1. ArrayListaula
Hoje vamos explorar a ArrayListclasse. Esta é a primeira de várias classes conhecidas como coleções . Em Java, as coleções são um tópico tão amplo e útil que toda uma missão do CodeGym é dedicada a elas.
Para entender completamente como as coleções são estruturadas e todas as suas nuances, você precisa primeiro aprender OOP, interfaces, herança, o básico de multithreading e muito mais.
Portanto, hoje vamos nos familiarizar com o tipo mais simples de coleção. Mas em um nível suficientemente profundo para que você entenda como usá-lo e como funciona. Agora então, conheça a ArrayListcoleção .
A história de fundo
Vou começar com um pouco de fundo. Os programadores realmente não gostaram de um aspecto dos arrays: o fato de que seu tamanho não pode ser alterado. E se você precisar armazenar mais três elementos em uma matriz, mas houver apenas uma célula vazia?
A única solução para as limitações de espaço de um array era criar um array muito grande para acomodar todos os elementos que você precisasse armazenar. Mas isso geralmente era um desperdício de memória. Se um array geralmente continha dois ou três elementos, mas havia uma pequena chance de precisar armazenar 100 deles, então era necessário criar um array com capacidade para armazenar 100.
Então, o que os programadores inventaram? Eles escreveram a ArrayListclasse, que fazia o mesmo trabalho que a Arrayclasse, mas era redimensionável.
Classe ArrayList
O nome da ArrayListclasse é formado por duas palavras: Array + List. Arrayé uma matriz e Listé uma lista.
Cada ArrayListobjeto contém uma matriz comum de elementos. Quando você lê elementos de um ArrayList, o objeto os recupera de seu array interno. Quando você escreve elementos, ele os grava no array interno.
A classe ArrayList não possui todas as desvantagens que os arrays possuem. Ele sabe como:
- Armazenar elementos de um tipo específico
- Redimensione a lista dinamicamente
- Adicionar elementos ao final da lista
- Inserir elementos no início ou no meio da lista
- Remover elementos de qualquer lugar da lista
Para mais detalhes veja:
2. Criando um ArrayListobjeto
Para criar um ArrayListobjeto, você precisa escrever um código como este:
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
Onde ArrayListé o tipo/classe da coleção, TypeParameteré o tipo dos elementos armazenados na ArrayListcoleção e nameé o nome de uma ArrayList<TypeParameter>variável.
A namevariável tem um tipo genérico. Consiste em dois tipos: o tipo da coleção é indicado primeiro e, em seguida, os colchetes angulares são usados para indicar o tipo dos elementos armazenados na coleção.
Exemplos:
| Código | Descrição |
|---|---|
|
Lista de números inteiros |
|
lista de strings |
|
Lista de números reais |
Ao contrário dos arrays, as coleções não podem armazenar tipos primitivos, apenas tipos de referência . Portanto, se você precisar de uma coleção de ints, use a Integerclasse wrapper.
3. Operações com umArrayList
Inicialmente, o comprimento da lista recém-criada é zero, pois contém 0 elementos. Se você adicionar um elemento à lista, seu comprimento aumentará em 1. Se você remover o elemento adicionado, o comprimento diminuirá de volta para zero.
A tabela a seguir pode ensinar mais sobre os métodos da ArrayListclasse:
| Métodos | Descrição |
|---|---|
|
Adiciona o elemento passado à lista |
|
Adiciona um elemento a um local específico na lista. |
|
Retorna o elemento cujo índice éindex |
|
Atribui valueao elemento cujo índice éindex |
|
Remove o elemento cujo índice é index. Retorna o elemento removido. |
|
Remove o elemento que você passa para o método. Se houver mais de um desses elementos, o primeiro será removido. |
|
Limpa a lista, ou seja, remove todos os elementos da lista. |
|
Verifica se a lista contém value. |
|
Verifica se a lista está vazia ou não. Em outras palavras, se o comprimento da lista é zero. |
|
Retorna o tamanho da lista, ou seja, o número de elementos da lista. |
|
Retorna um array contendo os elementos da lista. Você precisa passar o array para o método. |
Esses métodos permitem que você faça quase tudo o que quiser com a lista: trocar elementos, adicionar elementos e remover elementos. Você pode limpar a lista com um único comando ou até converter a lista em uma matriz.
4. Comparação de ArrayListeArray
Acho que não podemos evitar a comparação ArrayListe uma matriz.
Existem apenas 4 ações que você pode executar com arrays:
- Criar uma matriz
- Obter um elemento por índice
- Definir um elemento por índice
- Obter o comprimento da matriz
Aqui estão essas operações como elas se aplicam a um array e a um ArrayList:
| Variedade | ArrayList |
|---|---|
|
|
|
|
|
|
|
|
Vamos comparar como ArrayListfunciona um array versus como funciona um array. Por exemplo, vamos implementar esta tarefa: "ler 10 strings do teclado e exibi-las na tela na ordem inversa"
| Usando Matriz | Usando ArrayList |
|---|---|
|
|
A analogia é clara. Tudo é de alguma forma mais curto e claro para arrays. Mas ArrayListtambém não é difícil: para pegar um elemento, usamos o get()método; para alterar um elemento, o set()método; para obter o comprimento da lista, o size()método.
Então, por que os programadores usam a ArrayListclasse?
O ponto principal, é claro, são todos os outros métodos que os arrays comuns não possuem:
- Adicionar um elemento à lista
- Adicionar um elemento ao meio da lista
- Encontrar um elemento na lista
- Removendo um elemento de uma lista
GO TO FULL VERSION