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 elementnull
. - 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
- Importació: Importem la classe
HashSet
del paquetjava.util
. - Creació: Creem un
HashSet
de tipusString
. - Afegir Elements: Afegim alguns elements al
HashSet
utilitzant el mètodeadd()
. - Duplicats: Intentem afegir un element duplicat ("Java"). El mètode
add()
retornafalse
perquè l'element ja existeix. - Mostrar Elements: Imprimim els elements del
HashSet
.
Operacions Comunes
Afegir Elements
Utilitza el mètode add()
per afegir elements al HashSet
.
Eliminar Elements
Utilitza el mètode remove()
per eliminar un element específic.
Comprovar si un Element Existeix
Utilitza el mètode contains()
per comprovar si un element està present.
Iterar sobre els Elements
Pots utilitzar un bucle for-each
per iterar sobre els elements del HashSet
.
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
- Crea un
HashSet
d'enteros. - Afegir els números 1, 2, 3, 4, 5 al
HashSet
. - Eliminar el número 3.
- Comprovar si el número 4 està present.
- 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
- Crea un
HashSet
de cadenes. - Afegir les cadenes "A", "B", "C", "A".
- Comprovar si la cadena "A" es pot afegir dues vegades.
- 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
- Introducció a Java
- Configuració de l'Entorn de Desenvolupament
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
- Operadors
Mòdul 2: Flux de Control
Mòdul 3: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Mètodes
- Constructors
- Herència
- Polimorfisme
- Encapsulació
- Abstracció
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
- Lectura de Fitxers
- Escriptura de Fitxers
- Fluxos de Fitxers
- BufferedReader i BufferedWriter
- Serialització
Mòdul 8: Multithreading i Concurrència
- Introducció al Multithreading
- Creació de Fils
- Cicle de Vida dels Fils
- Sincronització
- Utilitats de Concurrència
Mòdul 9: Xarxes
- Introducció a les Xarxes
- Sockets
- ServerSocket
- DatagramSocket i DatagramPacket
- URL i HttpURLConnection