Introducció a HashSet

HashSet és una implementació de l'estructura de dades Set en Java, que forma part del paquet java.util. Un HashSet és una col·lecció que no permet elements duplicats i no garanteix l'ordre dels elements. Utilitza una taula hash per emmagatzemar els elements, la qual cosa permet operacions com afegir, eliminar i buscar elements de manera eficient.

Característiques Clau de HashSet

  • No permet duplicats: Cada element en un HashSet és únic.
  • No garanteix l'ordre: Els elements no es mantenen en cap ordre específic.
  • Permet elements null: Un HashSet pot contenir un únic element null.
  • Eficient: Les operacions bàsques (addició, eliminació, cerca) tenen una complexitat temporal O(1) en la majoria dels casos.

Creació d'un HashSet

Per crear un HashSet, simplement has d'instanciar-lo utilitzant el constructor per defecte o especificant una capacitat inicial i un factor de càrrega.

Exemple de Creació

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        // Crear un HashSet per defecte
        HashSet<String> set = new HashSet<>();

        // Afegir elements al HashSet
        set.add("Java");
        set.add("Python");
        set.add("C++");

        // Intentar afegir un element duplicat
        boolean isAdded = set.add("Java");
        System.out.println("Element 'Java' afegit: " + isAdded); // false

        // Mostrar els elements del HashSet
        System.out.println("Elements del HashSet: " + set);
    }
}

Explicació del Codi

  1. Importació: Importem la classe HashSet del paquet java.util.
  2. Creació: Creem un HashSet de tipus String.
  3. Afegir Elements: Afegim alguns elements al HashSet utilitzant el mètode add().
  4. Duplicats: Intentem afegir un element duplicat ("Java"). El mètode add() retorna false perquè l'element ja existeix.
  5. Mostrar Elements: Imprimim els elements del HashSet.

Operacions Comunes

Afegir Elements

Utilitza el mètode add() per afegir elements al HashSet.

set.add("Java");

Eliminar Elements

Utilitza el mètode remove() per eliminar un element específic.

set.remove("Python");

Comprovar si un Element Existeix

Utilitza el mètode contains() per comprovar si un element està present.

boolean exists = set.contains("C++");

Iterar sobre els Elements

Pots utilitzar un bucle for-each per iterar sobre els elements del HashSet.

for (String element : set) {
    System.out.println(element);
}

Exemple Complet

import java.util.HashSet;

public class HashSetExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();

        // Afegir elements
        set.add("Java");
        set.add("Python");
        set.add("C++");

        // Eliminar un element
        set.remove("Python");

        // Comprovar si un element existeix
        boolean exists = set.contains("C++");
        System.out.println("C++ existeix: " + exists);

        // Iterar sobre els elements
        for (String element : set) {
            System.out.println(element);
        }
    }
}

Exercicis Pràctics

Exercici 1: Crear un HashSet d'Enteros

  1. Crea un HashSet d'enteros.
  2. Afegir els números 1, 2, 3, 4, 5 al HashSet.
  3. Eliminar el número 3.
  4. Comprovar si el número 4 està present.
  5. Iterar sobre els elements i imprimir-los.

Solució

import java.util.HashSet;

public class IntegerHashSetExample {
    public static void main(String[] args) {
        HashSet<Integer> set = new HashSet<>();

        // Afegir elements
        set.add(1);
        set.add(2);
        set.add(3);
        set.add(4);
        set.add(5);

        // Eliminar un element
        set.remove(3);

        // Comprovar si un element existeix
        boolean exists = set.contains(4);
        System.out.println("4 existeix: " + exists);

        // Iterar sobre els elements
        for (Integer element : set) {
            System.out.println(element);
        }
    }
}

Exercici 2: Comprovar Duplicats

  1. Crea un HashSet de cadenes.
  2. Afegir les cadenes "A", "B", "C", "A".
  3. Comprovar si la cadena "A" es pot afegir dues vegades.
  4. Imprimir els elements del HashSet.

Solució

import java.util.HashSet;

public class DuplicateCheckExample {
    public static void main(String[] args) {
        HashSet<String> set = new HashSet<>();

        // Afegir elements
        set.add("A");
        set.add("B");
        set.add("C");

        // Intentar afegir un element duplicat
        boolean isAdded = set.add("A");
        System.out.println("Element 'A' afegit: " + isAdded); // false

        // Mostrar els elements del HashSet
        System.out.println("Elements del HashSet: " + set);
    }
}

Conclusió

En aquesta secció, hem après sobre la classe HashSet en Java, incloent les seves característiques clau, com crear-lo, i les operacions comunes que es poden realitzar amb ell. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. El HashSet és una eina poderosa per gestionar col·leccions d'elements únics de manera eficient.

Curs de Programació en Java

Mòdul 1: Introducció a Java

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

Mòdul 4: Programació Orientada a Objectes Avançada

Mòdul 5: Estructures de Dades i Col·leccions

Mòdul 6: Gestió d'Excepcions

Mòdul 7: Entrada/Sortida de Fitxers

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats