1. ArrayList
aula
Hoje vamos explorar a ArrayList
classe. 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 ArrayList
coleçã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 ArrayList
classe, que fazia o mesmo trabalho que a Array
classe, mas era redimensionável.
Classe ArrayList
O nome da ArrayList
classe é formado por duas palavras: Array + List. Array
é uma matriz e List
é uma lista.
Cada ArrayList
objeto 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 ArrayList
objeto
Para criar um ArrayList
objeto, 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 ArrayList
coleção e name
é o nome de uma ArrayList<TypeParameter>
variável.
A name
variá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 int
s, use a Integer
classe 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 ArrayList
classe:
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 value ao 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 ArrayList
eArray
Acho que não podemos evitar a comparação ArrayList
e 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 ArrayList
funciona 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 ArrayList
també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 ArrayList
classe?
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