DEV Community

FUNDAMENTOS JAVA
FUNDAMENTOS JAVA

Posted on

1

3 Map<K, V> (para pares chave-valor)

Image description

Implementações principais: HashMap, LinkedHashMap, TreeMap
Motivo: Ideal para manipular dados associativos com lambdas através de métodos como forEach, replaceAll, computeIfPresent, etc.

O Map é uma interface que representa uma coleção de pares chave-valor, onde cada chave é única.

  1. Implementações Principais

1.1. HashMap
Estrutura: Baseado em tabela hash
Ordem de inserção: Não garantida
Complexidade: O(1) para operações básicas (inserção, remoção, busca)
Uso recomendado: Quando a ordem não importa e a performance é prioritária

import java.util.HashMap;
import java.util.Map;

public class HashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> estoque = new HashMap<>();
        estoque.put("Maçã", 50);
        estoque.put("Banana", 30);
        estoque.put("Laranja", 20);

        System.out.println(estoque); // Impressão sem ordem específica
    }
}

Enter fullscreen mode Exit fullscreen mode

1.2. LinkedHashMap
Estrutura: Baseado em tabela hash + lista duplamente ligada
Ordem de inserção: Mantida
Complexidade: O(1) para operações básicas
Uso recomendado: Quando é necessário manter a ordem de inserção

import java.util.LinkedHashMap;
import java.util.Map;

public class LinkedHashMapExample {
    public static void main(String[] args) {
        Map<String, Integer> estoque = new LinkedHashMap<>();
        estoque.put("Maçã", 50);
        estoque.put("Banana", 30);
        estoque.put("Laranja", 20);

        System.out.println(estoque); // Ordem de inserção mantida
    }
}

Enter fullscreen mode Exit fullscreen mode

1.3. TreeMap
Estrutura: Baseado em árvore vermelha-preta
Ordem de inserção: Ordenado pelas chaves (ordem natural ou Comparator)
Complexidade: O(log n) para operações básicas
Uso recomendado: Quando é necessário manter as chaves ordenadas

import java.util.Map;
import java.util.TreeMap;

public class TreeMapExample {
    public static void main(String[] args) {
        Map<String, Integer> estoque = new TreeMap<>();
        estoque.put("Maçã", 50);
        estoque.put("Banana", 30);
        estoque.put("Laranja", 20);

        System.out.println(estoque); // Impressão ordenada pelas chaves
    }
}

Enter fullscreen mode Exit fullscreen mode
  1. Métodos Úteis com Lambdas 2.1. forEach() (Iteração simplificada)
estoque.forEach((fruta, quantidade) -> 
    System.out.println(fruta + " tem " + quantidade + " unidades")
);

Enter fullscreen mode Exit fullscreen mode

2.2. replaceAll() (Modifica todos os valores)

estoque.replaceAll((fruta, quantidade) -> quantidade * 2); // Dobra os valores

Enter fullscreen mode Exit fullscreen mode

2.3. computeIfPresent() (Modifica valores apenas se a chave existir)

estoque.computeIfPresent("Banana", (key, val) -> val + 10); // Soma 10 unidades à Banana

Enter fullscreen mode Exit fullscreen mode

Resumo das Diferenças

Image description

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay