En aquest tema, explorarem les col·leccions en Groovy, una part fonamental del llenguatge que permet emmagatzemar i manipular conjunts de dades de manera eficient. Groovy proporciona una àmplia gamma de col·leccions, incloent llistes, mapes, conjunts i més. Aprendrem com crear, modificar i utilitzar aquestes col·leccions amb exemples pràctics.
Índex
Introducció a les Col·leccions
Les col·leccions són estructures de dades que permeten emmagatzemar múltiples elements en una sola unitat. Groovy ofereix diverses col·leccions que es poden utilitzar per a diferents propòsits:
- Llistes: Emmagatzemen elements en una seqüència ordenada.
- Mapes: Emmagatzemen parelles clau-valor.
- Conjunts: Emmagatzemen elements únics sense ordre específic.
Llistes
Les llistes en Groovy són similars a les arrays en altres llenguatges de programació, però amb més funcionalitats. Es poden crear utilitzant la notació de claudàtors []
.
Creació de Llistes
def llistaBuida = [] def llistaDeNumeros = [1, 2, 3, 4, 5] def llistaDeStrings = ["Groovy", "Java", "Python"]
Accés a Elements
Modificació de Llistes
Mètodes Comuns
Mètode | Descripció |
---|---|
size() |
Retorna la mida de la llista |
add(element) |
Afegeix un element a la llista |
remove(index) |
Elimina l'element en la posició especificada |
contains(element) |
Comprova si la llista conté l'element |
Exemple Pràctic
def llista = [1, 2, 3, 4, 5] println "Mida de la llista: ${llista.size()}" llista.add(6) println "Llista després d'afegir un element: $llista" llista.remove(2) println "Llista després d'eliminar l'element en la posició 2: $llista" println "La llista conté el número 4? ${llista.contains(4)}"
Mapes
Els mapes emmagatzemen parelles clau-valor i són molt útils per a associar dades.
Creació de Mapes
Accés a Elements
Modificació de Mapes
Mètodes Comuns
Mètode | Descripció |
---|---|
size() |
Retorna la mida del mapa |
put(clau, valor) |
Afegeix una parella clau-valor al mapa |
remove(clau) |
Elimina l'entrada amb la clau especificada |
containsKey(clau) |
Comprova si el mapa conté la clau |
Exemple Pràctic
def mapa = [nom: "Anna", edat: 25, ciutat: "València"] println "Mida del mapa: ${mapa.size()}" mapa.put('país', 'Espanya') println "Mapa després d'afegir una entrada: $mapa" mapa.remove('edat') println "Mapa després d'eliminar l'entrada 'edat': $mapa" println "El mapa conté la clau 'ciutat'? ${mapa.containsKey('ciutat')}"
Conjunts
Els conjunts emmagatzemen elements únics i no permeten duplicats.
Creació de Conjunts
Modificació de Conjunts
Mètodes Comuns
Mètode | Descripció |
---|---|
size() |
Retorna la mida del conjunt |
add(element) |
Afegeix un element al conjunt |
remove(element) |
Elimina l'element especificat del conjunt |
contains(element) |
Comprova si el conjunt conté l'element |
Exemple Pràctic
def conjunt = [1, 2, 3, 4, 5] as Set println "Mida del conjunt: ${conjunt.size()}" conjunt.add(6) println "Conjunt després d'afegir un element: $conjunt" conjunt.remove(2) println "Conjunt després d'eliminar l'element 2: $conjunt" println "El conjunt conté el número 4? ${conjunt.contains(4)}"
Iteració sobre Col·leccions
Groovy proporciona diverses maneres d'iterar sobre col·leccions, com ara bucles for
, each
, collect
, etc.
Exemple d'Iteració amb each
Exemple d'Iteració amb collect
def llista = [1, 2, 3, 4, 5] def llistaDoble = llista.collect { it * 2 } println "Llista original: $llista" println "Llista amb elements duplicats: $llistaDoble"
Exercicis Pràctics
Exercici 1: Treballant amb Llistes
- Crea una llista amb els números del 1 al 10.
- Afegeix el número 11 al final de la llista.
- Elimina el número 5 de la llista.
- Comprova si la llista conté el número 7.
- Itera sobre la llista i imprimeix cada element.
Solució
def llista = (1..10).toList() llista << 11 llista.remove(4) println "La llista conté el número 7? ${llista.contains(7)}" llista.each { println "Element: $it" }
Exercici 2: Treballant amb Mapes
- Crea un mapa amb les següents parelles clau-valor: nom: "Maria", edat: 28, ciutat: "Girona".
- Afegeix una nova entrada amb la clau "país" i el valor "Espanya".
- Modifica el valor de la clau "ciutat" a "Tarragona".
- Elimina l'entrada amb la clau "edat".
- Comprova si el mapa conté la clau "nom".
Solució
def mapa = [nom: "Maria", edat: 28, ciutat: "Girona"] mapa.put('país', 'Espanya') mapa.ciutat = "Tarragona" mapa.remove('edat') println "El mapa conté la clau 'nom'? ${mapa.containsKey('nom')}"
Conclusió
En aquesta secció, hem après sobre les col·leccions en Groovy, incloent llistes, mapes i conjunts. Hem vist com crear, modificar i iterar sobre aquestes col·leccions amb exemples pràctics. Les col·leccions són una eina poderosa en Groovy que permeten gestionar i manipular dades de manera eficient. En el proper tema, explorarem les closures, una altra característica important de Groovy.
Curs de Programació Groovy
Mòdul 1: Introducció a Groovy
Mòdul 2: Sintaxi i Característiques del Llenguatge Groovy
Mòdul 3: Programació Orientada a Objectes en Groovy
Mòdul 4: Característiques Avançades de Groovy
Mòdul 5: Groovy en la Pràctica
- Entrada/Sortida de Fitxers
- Treballant amb XML i JSON
- Accés a Bases de Dades
- Desenvolupament Web amb Groovy
Mòdul 6: Proves i Depuració
Mòdul 7: Ecosistema i Eines de Groovy
- Eina de Construcció Gradle
- Framework de Proves Spock
- Framework Grails
- Altres Llibreries i Eines de Groovy
Mòdul 8: Millors Pràctiques i Temes Avançats
- Estil de Codi i Convencions
- Optimització del Rendiment
- Consideracions de Seguretat
- Concurrència en Groovy