Вы находитесь на странице: 1из 3

Nome: Tiago Siqueira Ayres

Programação Orientada à Objetos – POO (noturno)

Map<K,V>

1. Odcumentação:

https://docs.oracle.com/javase/10/docs/api/java/util/Map.html

2. O que é ?

O Map<K,V> é uma coleção de pares chave / valor, onde não admite repetições do objeto chave,
os elementos são indexados pelo objeto chave (não possuem posição) e Acesso, inserção e
remoção de elementos são rápidos.

3. Uso comum:

Usado normalmente em cookies, local storage e qualquer outro modelo que necessite de
implementação de chave-valor.

4. Principais implementações:

• HashMap - mais rápido (operações O(1) em tabela hash) e não ordenado


• TreeMap - mais lento (operações O(log(n)) em árvore rubro-negra) e ordenado pelo
compareTo do objeto (ou Comparator)
• LinkedHashMap - velocidade intermediária e elementos na ordem em que são
adicionados

5. Alguns métodos importantes:

• put(key, value), remove(key), containsKey(key), get(key)

• Baseado em equals e hashCode

• Se equals e hashCode não existir, é usada comparação de ponteiros

• clear()

• size()

• keySet() - retorna um Set

• values() - retornaa um Collection

6. Exemplo:

CLASSE PROGRAMA - TESTE

package application;

import java.util.HashMap;
import java.util.Map;
import entities.Fruta;

public class Programa {


public static void main(String[] args) {
Map<Fruta, Double> estoque = new HashMap<>();

Fruta f1 = new Fruta("Laranja", 5.0);


Fruta f2 = new Fruta("Limão", 3.0);
Fruta f3 = new Fruta("Maçã", 4.0);

estoque.put(f1, 5.0);
estoque.put(f2, 3.0);
estoque.put(f3, 4.0);

Fruta ps = new Fruta("Melancia", 10.0);

System.out.println(estoque.containsKey(ps));
}
}

CLASSE FRUTA

package entities;

public class Fruta {


private String nome;
private Double preco;

public Fruta(String nome, Double preco) {


this.nome = nome;
this.preco = preco;
}
// getters, setters, equals, hashCode

public String getNome() {


return nome;
}

public void setNome(String nome) {


this.nome = nome;
}

public Double getPreco() {


return preco;
}

public void setPreco(Double preco) {


this.preco = preco;
}

@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((nome == null) ? 0 : nome.hashCode());
result = prime * result + ((preco == null) ? 0 : preco.hashCode());
return result;
}

@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Fruta other = (Fruta) obj;
if (nome == null) {
if (other.nome != null)
return false;
} else if (!nome.equals(other.nome))
return false;
if (preco == null) {
if (other.preco != null)
return false;
} else if (!preco.equals(other.preco))
return false;
return true;
}

7. Fonte:
Java Guia do Programador - 3ª Edição - PETER JANDL JUNIOR
https://docs.oracle.com/javase/10/docs/api/java/util/Map.html

Вам также может понравиться