Méthode size() de Java HashSet

Java HashSet Java HashSet


size()La méthode est dans JavaHashSetune méthode intégrée de la classe, utilisée pour renvoyer le nombre d'éléments dans la collection actuelle. Sa signature de méthode est la suivante :

Syntaxe de la méthode

public int size()

Valeur de retour

Cette méthode renvoie uneintvaleur de type, représentantHashSetle nombre d'éléments actuellement stockés dans l'instance.

Remarques importantes

  • La valeur de retour est toujours un entier non négatif
  • Lorsque l'ensemble est vide, renvoie 0
  • La valeur de retour reflète la taille de l'ensemble au moment de l'appel ; les opérations add/remove ultérieures modifieront cette valeur

Exemples d'utilisation

Utilisation de base

Exemple

import java.util.HashSet;

public class HashSetSizeExample {
    public static void main(String[] args) {
        // Créer un nouveau HashSet
        HashSet<String> fruits = new HashSet<>();
       
        // Ajouter des éléments
        fruits.add("Pomme");
        fruits.add("Banane");
        fruits.add("Orange");
       
        // Utiliser la méthode size() pour obtenir la taille de l'ensemble
        int size = fruits.size();
        System.out.println("Nombre d'éléments dans HashSet : " + size); // Sortie : 3
    }
}

Cas de l'ensemble vide

Exemple

HashSet<Integer> numbers = new HashSet<>();
System.out.println("Taille du HashSet vide : " + numbers.size()); // Sortie : 0

Modifications dynamiques

Exemple

HashSet<Character> letters = new HashSet<>();
System.out.println("Taille initiale : " + letters.size()); // Sortie : 0

letters.add('A');
letters.add('B');
System.out.println("Taille après ajout : " + letters.size()); // Sortie : 2

letters.remove('A');
System.out.println("Taille après suppression : " + letters.size()); // Sortie : 1

Détails techniques

Complexité temporelle

size()La complexité temporelle de la méthode est O(1), carHashSetil maintient en interne un compteur pour suivre le nombre d'éléments, plutôt que de recalculer à chaque appel.

Différence avec la capacité

  • size()Il renvoie le nombre réel d'éléments stockés
  • La capacité désigne la taille de la table de hachage sous-jacente et peut être définie via le constructeur
  • La capacité est généralement supérieure ou égale à la taille

Exemple

HashSet<String> set = new HashSet<>(100); // Capacité initiale 100
System.out.println(set.size()); // Sortie : 0 (car il n'y a pas encore d'éléments)

Scénarios d'application pratiques

1. Vérifier si l'ensemble est vide

Bien que vous puissiez utiliserisEmpty()méthode, maissize() == 0est aussi une pratique courante.

Exemple

if (cartItems.size() == 0) {
    System.out.println("Le panier est vide");
}

2. Limiter la taille de l'ensemble

Exemple

HashSet<User> activeUsers = new HashSet<>();
// ...
if (activeUsers.size() >= MAX_ACTIVE_USERS) {
    System.out.println("Nombre maximum d'utilisateurs actifs atteint");
}

3. Surveillance des performances

Exemple

// Enregistrer la taille de l'ensemble à différents moments pour surveiller l'utilisation de la mémoire
log.info("Nombre actuel d'entrées dans le cache : " + cache.size());

Notes

  1. Environnement concurrent:HashSetn'est pas thread-safe ; dans un environnement multithread, l'utilisation desize()peut donner des résultats inexacts. Envisagez d'utiliserConcurrentHashMapou un wrapper synchronisé.

  2. Coopération avec d'autres méthodes de collection:

    Exemple

    // Vérifier d'abord la taille pour éviter les opérations inutiles
    if (set1.size() == set2.size() && set1.containsAll(set2)) {
        System.out.println("Les deux ensembles sont égaux");
    }
  3. Considérations sur la mémoire: grandHashSetoccupera plus de mémoire ; vérifier régulièrementsize()peut aider à identifier les problèmes de mémoire.


Résumé

HashSetdesize()La méthode est un outil simple mais très utile qui fournit un aperçu rapide de l'état actuel de la collection. Comprendre et utiliser correctement cette méthode peut vous aider à écrire du code Java plus efficace et plus fiable.

Java HashSet Java HashSet

Autres extensions