Méthode size() de 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
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
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
System.out.println("Taille du HashSet vide : " + numbers.size()); // Sortie : 0
Modifications dynamiques
Exemple
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
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
System.out.println("Le panier est vide");
}
2. Limiter la taille de l'ensemble
Exemple
// ...
if (activeUsers.size() >= MAX_ACTIVE_USERS) {
System.out.println("Nombre maximum d'utilisateurs actifs atteint");
}
3. Surveillance des performances
Exemple
log.info("Nombre actuel d'entrées dans le cache : " + cache.size());
Notes
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é.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");
}
Considérations sur la mémoire: grand
HashSetoccupera 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