Les col·leccions són una part fonamental de la programació en Scala. Proporcionen estructures de dades eficients i flexibles per emmagatzemar i manipular grups d'elements. En aquest tema, explorarem els conceptes bàsics de les col·leccions en Scala, incloent-hi els tipus principals de col·leccions i les seves característiques.
Objectius d'Aprenentatge
Al final d'aquest tema, hauràs après:
- Què són les col·leccions en Scala.
- Els tipus principals de col·leccions en Scala.
- Les característiques i diferències entre col·leccions mutables i immutables.
- Com crear i utilitzar col·leccions bàsiques.
Tipus de Col·leccions en Scala
Scala proporciona una àmplia gamma de col·leccions, que es poden classificar en dues categories principals:
- Col·leccions Immutables: No es poden modificar després de la seva creació.
- Col·leccions Mutables: Es poden modificar després de la seva creació.
Col·leccions Immutables
Les col·leccions immutables són preferides en la programació funcional perquè garanteixen que les dades no canviaran, la qual cosa facilita el raonament sobre el codi i evita errors comuns relacionats amb la mutabilitat.
Exemples de col·leccions immutables:
List
Vector
Set
Map
Col·leccions Mutables
Les col·leccions mutables permeten modificar els elements després de la seva creació. Són útils en situacions on es necessita actualitzar les dades freqüentment.
Exemples de col·leccions mutables:
ArrayBuffer
ListBuffer
HashSet
HashMap
Creació de Col·leccions
Llistes Immutables
Les llistes immutables són una de les col·leccions més utilitzades en Scala. Es poden crear de diverses maneres:
val llistaBuida: List[Int] = List() val llistaDeNumeros: List[Int] = List(1, 2, 3, 4, 5) val llistaDeParaules: List[String] = List("Hola", "Món")
Vectors
Els vectors són similars a les llistes, però ofereixen un millor rendiment per a l'accés aleatori als elements:
Conjunts Immutables
Els conjunts immutables no permeten elements duplicats:
Mapes Immutables
Els mapes immutables emmagatzemen parelles clau-valor:
Operacions Bàsiques amb Col·leccions
Accés als Elements
Pots accedir als elements d'una col·lecció utilitzant l'índex (per a col·leccions indexades) o la clau (per a mapes):
val primerElement = llistaDeNumeros(0) // Accedeix al primer element de la llista val valor = mapaDeNumeros(1) // Accedeix al valor associat a la clau 1
Afegir i Eliminar Elements
Les col·leccions immutables no es poden modificar, però pots crear noves col·leccions amb elements afegits o eliminats:
val novaLlista = llistaDeNumeros :+ 6 // Afegeix un element al final de la llista val nouConjunt = conjuntDeNumeros + 6 // Afegeix un element al conjunt val nouMapa = mapaDeNumeros + (4 -> "Quatre") // Afegeix una nova parella clau-valor al mapa
Iteració sobre Col·leccions
Pots iterar sobre els elements d'una col·lecció utilitzant bucles o funcions d'ordre superior com foreach
:
Exercicis Pràctics
Exercici 1: Crear i Manipular una Llista
Crea una llista de números de l'1 al 5 i afegeix el número 6 al final. Imprimeix la llista resultant.
Exercici 2: Crear i Manipular un Conjunt
Crea un conjunt de números de l'1 al 5 i afegeix el número 6. Imprimeix el conjunt resultant.
Exercici 3: Crear i Manipular un Mapa
Crea un mapa amb les parelles clau-valor (1 -> "Un", 2 -> "Dos", 3 -> "Tres"). Afegeix la parella (4 -> "Quatre") i imprimeix el mapa resultant.
val mapa = Map(1 -> "Un", 2 -> "Dos", 3 -> "Tres") val nouMapa = mapa + (4 -> "Quatre") nouMapa.foreach{ case (clau, valor) => println(s"$clau -> $valor") }
Resum
En aquest tema, hem introduït les col·leccions en Scala, incloent-hi els tipus principals de col·leccions i les seves característiques. Hem après a crear i utilitzar col·leccions bàsiques com llistes, vectors, conjunts i mapes. També hem explorat operacions bàsiques com l'accés als elements, l'afegit i l'eliminació d'elements, i la iteració sobre col·leccions. En els següents temes, aprofundirem en col·leccions específiques i les seves aplicacions pràctiques.
Curs de Programació en Scala
Mòdul 1: Introducció a Scala
- Introducció a Scala
- Configuració de l'Entorn de Desenvolupament
- Conceptes Bàsics de Scala: Sintaxi i Estructura
- Variables i Tipus de Dades
- Operacions Bàsiques i Expressions
Mòdul 2: Estructures de Control i Funcions
- Declaracions Condicionals
- Bucles i Iteracions
- Funcions i Mètodes
- Funcions d'Ordre Superior
- Funcions Anònimes
Mòdul 3: Col·leccions i Estructures de Dades
- Introducció a les Col·leccions
- Llistes i Arrays
- Conjunts i Mapes
- Tuples i Options
- Coincidència de Patrons
Mòdul 4: Programació Orientada a Objectes en Scala
- Classes i Objectes
- Herència i Traits
- Classes Abstractes i Classes Case
- Objectes Companys
- Objectes Singleton
Mòdul 5: Programació Funcional en Scala
- Immutabilitat i Funcions Pures
- Estructures de Dades Funcionals
- Monads i Functors
- For-Comprehensions
- Gestió d'Errors en la Programació Funcional
Mòdul 6: Conceptes Avançats de Scala
- Conversions i Paràmetres Implícits
- Classes de Tipus i Polimorfisme
- Macros i Reflexió
- Concurrència en Scala
- Introducció a Akka