Java HashSet size()-Methode

Java HashSet Java HashSet


size()Die Methode ist in JavaHashSeteine integrierte Methode der Klasse, die verwendet wird, um die Anzahl der Elemente in der aktuellen Sammlung zurückzugeben. Ihre Methodensignatur lautet wie folgt:

Methodensyntax

public int size()

Rückgabewert

Diese Methode gibt einenintTypwert, derHashSetdie Anzahl der derzeit in der Instanz gespeicherten Elemente darstellt.

Wichtige Hinweise

  • Der Rückgabewert ist immer eine nichtnegative ganze Zahl
  • Wenn das Set leer ist, wird 0 zurückgegeben
  • Der Rückgabewert gibt die Größe des Sets zum Zeitpunkt des Aufrufs wieder; nachfolgende add/remove-Operationen ändern diesen Wert

Anwendungsbeispiele

Grundlegende Verwendung

Beispiel

import java.util.HashSet;

public class HashSetSizeExample {
    public static void main(String[] args) {
        // Ein neues HashSet erstellen
        HashSet<String> fruits = new HashSet<>();
       
        // Elemente hinzufügen
        fruits.add("Apfel");
        fruits.add("Banane");
        fruits.add("Orange");
       
        // Verwenden Sie die Methode size(), um die Größe des Sets abzurufen
        int size = fruits.size();
        System.out.println("Anzahl der Elemente in HashSet: " + size); // Ausgabe: 3
    }
}

Fall der leeren Menge

Beispiel

HashSet<Integer> numbers = new HashSet<>();
System.out.println("Größe des leeren HashSet: " + numbers.size()); // Ausgabe: 0

Dynamische Änderungen

Beispiel

HashSet<Character> letters = new HashSet<>();
System.out.println("Anfangsgröße: " + letters.size()); // Ausgabe: 0

letters.add('A');
letters.add('B');
System.out.println("Größe nach dem Hinzufügen: " + letters.size()); // Ausgabe: 2

letters.remove('A');
System.out.println("Größe nach Entfernung: " + letters.size()); // Ausgabe: 1

Technische Details

Zeitkomplexität

size()Die Zeitkomplexität der Methode ist O(1), weilHashSetsie intern einen Zähler führt, um die Anzahl der Elemente zu verfolgen, anstatt bei jedem Aufruf neu zu berechnen.

Unterschied zur Kapazität

  • size()Sie gibt die tatsächliche Anzahl der gespeicherten Elemente zurück
  • Die Kapazität bezieht sich auf die Größe der zugrunde liegenden Hash-Tabelle und kann über den Konstruktor festgelegt werden
  • Die Kapazität ist normalerweise größer als oder gleich size

Beispiel

HashSet<String> set = new HashSet<>(100); // Anfangskapazität 100
System.out.println(set.size()); // Ausgabe: 0 (da noch keine Elemente vorhanden sind)

Praktische Anwendungsszenarien

1. Prüfen, ob das Set leer ist

Obwohl Sie verwenden könnenisEmpty()Methode, abersize() == 0ist auch eine gängige Praxis.

Beispiel

if (cartItems.size() == 0) {
    System.out.println("Der Einkaufswagen ist leer");
}

2. Set-Größe begrenzen

Beispiel

HashSet<User> activeUsers = new HashSet<>();
// ...
if (activeUsers.size() >= MAX_ACTIVE_USERS) {
    System.out.println("Maximale Anzahl aktiver Benutzer erreicht");
}

3. Leistungsüberwachung

Beispiel

// Set-Größe zu verschiedenen Zeitpunkten erfassen, um die Speichernutzung zu überwachen
log.info("Aktuelle Anzahl der Cache-Einträge: " + cache.size());

Hinweise

  1. Nebenläufige Umgebung:HashSetist nicht threadsicher; in einer Multithread-Umgebung kann die Verwendung vonsize()zu ungenauen Ergebnissen führen. Erwägen Sie die Verwendung vonConcurrentHashMapoder einem synchronisierten Wrapper.

  2. Zusammenarbeit mit anderen Collection-Methoden:

    Beispiel

    // Größe zuerst prüfen, um unnötige Operationen zu vermeiden
    if (set1.size() == set2.size() && set1.containsAll(set2)) {
        System.out.println("Die beiden sind gleich");
    }
  3. Speicherüberlegungen: GroßHashSetbeansprucht mehr Speicher; regelmäßiges Prüfensize()kann helfen, Speicherprobleme zu erkennen.


Zusammenfassung

HashSetvonsize()Die Methode ist ein einfaches, aber sehr nützliches Werkzeug, das einen schnellen Überblick über den aktuellen Zustand der Sammlung bietet. Diese Methode zu verstehen und korrekt zu verwenden, kann Ihnen helfen, effizienteren und zuverlässigeren Code zu schreiben.

Java HashSet Java HashSet

Andere Erweiterungen