– Adição de elementos
• Adicionar um objeto em qualquer lugar da lista, fornecendo o índice desejado
– Remoção de elementos
• Remover um objeto presente em qualquer lugar da lista, fornecendo o índice desejado
– Acesso aos elementos
• Obter o elemento de qualquer posição da lista, fornecendo o índice desejado
– Pesquisa de elementos
• Descobrir se um elemento está na lista • Descobrir o índice de um elemento na lista – Indagar sobre os atributos
• Obter o número de elementos da lista • Descobrir se a lista está fazia
ArrayList
• ArrayList é um dos diversos tipos de lista que existe na API de coleções
• Como declarar e usar ArrayList em Java
– Importe:
import java.util.ArrayList;
– Por ser um tipo diferente, sua sintaxe é um pouco diferente do que você já viu até então:
ArrayList< Classe> nomeDoArrayList = new ArrayList< Classe>();
– No exemplo a seguir, vamos usar um ArrayList de String
ArrayList
Método O que faz? Exemplo de Utilização
add(Element e) Adiciona um elemento no fim da lista
nomes.add(“José”) add(int index, Element e) Adiciona um elemento em uma
posição específica
nomes.add(1, “Maria”) remove(Element e) Remove a primeira ocorrência do
elemento na lista, se ele existir.
nomes.remove(“Maria”) remove(int index) Remove o elemento da posição
especificada, deslocando para a esquerda os elementos a direita dessa posição.
nomes.remove(0)
get(int index) Retorna o elemento da posição especificada.
nomes.get(2) set(int index, Element e) Substitui o elemento na posição
especificada pelo passada como parâmetro.
ArrayList
Método O que faz? Exemplo de Utilização
isEmpty Retorna true se a lista está vazia. nomes.isEmpty()
size Retorna o total de elementos presente na lista.
nomes.size() toArray Retorna um Array contendo os
mesmos elementos da lista.
nomes.toArray() contains(Element e) Retorna true se o elemento
existir na lista.
nomes.contains(“Ana” )
indexOf(Element e) Retorna a posição na lista do elemento passado como parâmetro, se ele existir.
nomes.indexOf(“Mari a”)
clear Apaga todos os elementos da lista.
Exercício
1. Crie um ArrayList de Strings
2. Adicione ao ArrayList alguns nomes de parentes da sua família e seu nome
3. Imprima a posição do seu nome 4. Remova o primeiro nome
5. Teste se seu nome ainda está na lista, se estiver imprima a nova posição do seu nome na lista 6. Imprima o elemento da primeira posição
ArrayList
• Para mais detalhes consultem a documentação da classe ArrayList
– https://docs.oracle.com/javase/7/docs/api/java/u til/ArrayList.html
Conjuntos
• Um conjunto consiste em um tipo de coleção de objetos em que não pode haver elementos repetidos e que os elementos podem ou não estar organizados
– Como conjuntos em matemática
A B C D E F G H I J
HashSet e TreeSet
• No HashSet, os objetos do conjunto encontram-se desordenados
– Como usar
• Importe
java.util.HashSet
• Instancie
HashSet<String> nomes = new HashSet<String>();
• No TreeSet, os objetos do conjunto encontram-se ordenados
– Como usar
• Importe
java.util.TreeSet
• Instancie
HashSet e TreeSet
Método O que faz? Como usar?
add(Element e) Adiciona um elemento no conjunto.
nomes.add(“João”). contains(Element e) Retorna true se o elemento
passado como parâmetro existe no conjunto.
nomes.contains(“José”);
isEmpty() Retorna true se o conjunto está vazio.
nomes.isEmpty(); remove(Element e) Remove o elemento do
conjunto.
nomes.remove(“João”);
size() Retorna a quantidade de
elementos do conjunto.
nomes.size(); toArray() Retorna um array com os
mesmos elementos do conjunto.
HashSet e TreeSet
• Mais detalhes sobre essas coleções podem ser encontrados em suas documentações
– https://docs.oracle.com/javase/7/docs/api/java/u til/HashSet.html
– https://docs.oracle.com/javase/7/docs/api/java/u til/TreeSet.html
Mapas
• Funcionam como um dicionário
– Cada elemento está associado a uma chave, utilizando a chave, acessa-se o elemento
diretamente.
– CADA ELEMENTO É MAPEADO POR UMA CHAVA
HashMap
• A classe HashMap é uma das principais implementações de Mapa da API de Java.
– Não é sincronizada
HashMap
• O uso principal da classe HashMap é quando queremos associar chaves e valores e,
posteriormente, recuperar valores baseados em suas chaves.
• Como utilizar
– Importe
import java.util.HashMap;
– Instancie
HashMap
Método O que faz? Como usar?
put(Key k, Element e) Insere no mapa o
elemento e o associa a sua chave.
Pessoa p = new Pessoa(“Cleyton”); mapa.put(“cleyton”, p)
get(Key k) Retorna o elemento passando sua chave.
mapa.get(“cleyton”) remove(Key k) Remove o elemento
passando sua chave.
mapa.remove(“cleyton”) isEmpty() Retorna true se o
mapa está vazio.
mapa.isEmpty() size() Retorna o número de
chaves que existem no mapa.
HashMap
Método O que faz? Como usar?
keySet() Retorna um
conjunto contendo as chaves do mapa.
Set set = mapa.keySet();
values() Retorna uma lista contendo os
elementos do mapa.
List list = mapa.values()
containsKey(Key k) Retorna true se a chave existe no mapa.
mapa.containsKey(“cleyton”)
containsValue(Element e) Retorna true se o elemento existe no mapa.
Pessoa p = new Pessoa(“Cleyton”); mapa.containsValue(p)
HashMap
• Para mais detalhes consultem a
documentação da classe HashMap
– https://docs.oracle.com/javase/7/docs/api/java/u til/HashMap.html
Envelopadores
• Coleções só podem conter objetos!
– Como criar um ArrayList de inteiro?
Envelopadores
• Os envelopadores (wrappers, em inglês) são classes em Java que servem para representar os tipos primitivos
• Cada tipo primitivo possui uma classe para representá-la
Envelopadores
Tipo Primitivo Classe
boolean Boolean char Char byte Byte short Short int Integer long Long float Float double Double
Envelopadores
• Além de representar os tipos primitivos, essas classes possuem diversos métodos bastante úteis
Exemplos
• A classe Integer possui o método longValue que converte um inteiro para double
– Integer i = new Integer(1); – double d = i.doubleValue();
• A classe Integer possui o método estático
parseInt, o qual converte uma String em um número inteiro.
Exercício
• Utilize método estático parseInt e o método nextLine de Scanner para ler uma String e convertê-la em um número
Exercício
• Utilize método estático parseInt e o método nextLine de Scanner para ler uma String e convertê-la em um número
• Solução
– Scanner s = new Scanner(System.in); – int i = Integer.parseInt(s.nextLine());