Map.size în Java

size() spune câte perechi cheie → valoare are map-ul, isEmpty() dacă e gol, clear() le șterge pe toate.

Sintaxă
int size()
boolean isEmpty()
void clear()

Ce face Map.size

size() returnează numărul de perechi, adică numărul de chei distincte. isEmpty() este true când nu există nicio pereche.

clear() șterge toate perechile; obiectul map rămâne și poate fi refolosit. Vederile obținute înainte (keySet(), values()) devin și ele goale. Pe Map.of aruncă UnsupportedOperationException.

Ce returnează

size: int. isEmpty: boolean. clear: nimic.

Exemple

Exemplul 1: Coșul de cumpărături

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

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> cos = new LinkedHashMap<>();
        System.out.println("Coș gol: " + cos.isEmpty());
        cos.put("cafea", 1);
        cos.put("lapte", 2);
        cos.put("cafea", 3);
        System.out.println("Produse diferite: " + cos.size() + " " + cos);
        cos.clear();
        System.out.println("După plată: " + cos.size() + ", gol: " + cos.isEmpty());
    }
}

Rezultat

Coș gol: true
Produse diferite: 2 {cafea=3, lapte=2}
După plată: 0, gol: true

Exemplul 2: Vederile se golesc odată cu map-ul

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

public class Main {
    public static void main(String[] args) {
        Map<String, Integer> note = new TreeMap<>(Map.of("Ana", 9, "Radu", 8));
        Collection<Integer> valori = note.values();
        System.out.println(valori);
        note.clear();
        System.out.println(valori + " " + valori.size());
    }
}

Rezultat

[9, 8]
[] 0

Greșeli frecvente

  • Crezi că size() numără valorile distincte. Numără perechile; două chei cu aceeași valoare contează de două ori.
  • Apelezi clear() pe un map primit de la alt cod care încă îl folosește. Ambii văd același map gol.

Comenzi înrudite

  • Map: Interfața pentru dicționare: perechi cheie → valoare, în care găsești rapid valoarea după cheie. Cheile sunt unice.
  • Set.size: size() spune câte elemente distincte are mulțimea, isEmpty() dacă e goală, iar clear() le șterge pe toate.
  • List.size: size spune câte elemente are lista, isEmpty verifică dacă e goală, iar clear șterge toate elementele.
  • Map.remove: Șterge perechea cu cheia dată și returnează valoarea ei (sau null). Varianta cu două argumente șterge doar dacă valoarea se potrivește.