Array
TODO importat de List, pendent de revisar
Introducció
Un array és la manera més simple d’agrupar un nombre arbitrari de valors en els teus programes.
Un Array representa més d’un valor.
Concretament, un array és una seqüència de valors que tenen tots el mateix tipus de dada:
| Int | Int | Int | Int | Int | Int |
Un array conté múltiples valors anomenats elements, o, de vegades, ítems.
| 71 | 600 | 33 | 9 | 4 | 14 |
Els elements d’un array estan ordenats i s’hi accedeix amb un índex.
| 71 | 600 | 33 | 9 | 4 | 14 |
| 0 | 1 | 2 | 3 | 4 | 5 |
Què és un índex? Un índex és un nombre enter que correspon a un element de l’array. Un índex indica la distància d’un ítem respecte de l’element inicial d’un array. Això s’anomena indexació des de zero. El primer element de l’array és a l’índex 0, el segon element és a l’índex 1, perquè és a un lloc del primer element, i així successivament.
A la memòria del dispositiu, els elements de l’array s’emmagatzemen l’un al costat de l’altre.
Això té dues implicacions importants:
-
Accedir a un element d’un array pel seu índex és ràpid. Pots accedir a qualsevol element aleatori d’un array pel seu índex i esperar que trigui aproximadament el mateix temps que accedir a qualsevol altre element aleatori. Per això es diu que els arrays tenen accés aleatori.
-
Un array té una mida fixa. Això vol dir que no pots afegir elements a un array més enllà d’aquesta mida. Intentar accedir a l’element de l’índex 100 en un array de 100 elements llançarà una excepció perquè l’índex més alt és 99 (recorda que el primer índex és 0, no 1). Pots, però, modificar els valors als índexs de l’array.
Per declarar un array en codi, utilitzes la funció arrayOf():
val plants = arrayOf<String>("Carrot", "Daikon", "Onion", "Garlic", "Beet")La funció arrayOf() pren els elements de l’array com a paràmetres i retorna un array del tipus que coincideix amb els paràmetres passats.
Això pot semblar una mica diferent d’altres funcions que has vist perquè arrayOf() té un nombre variable de paràmetres:
- Si passes dos arguments a
arrayOf(), l’array resultant conté dos elements, amb índexs 0 i 1. - Si passes tres arguments, l’array resultant tindrà 3 elements, amb índexs de l’1 al 2.
Com que Kotlin fa servir inferència de tipus, pots ometre el nom del tipus quan crides arrayOf():
val plants = arrayOf("Carrot", "Daikon", "Onion", "Garlic", "Beet")Pots fer algunes coses interessants amb els arrays.
Per exemple, igual que amb els tipus numèrics Int o Double, pots sumar dos arrays fent servir l’operador més (+).
val plants = arrayOf("Carrot", "Daikon", "Onion", "Garlic", "Beet")
val animals = arrayOf("Cat", "Dog", "Cow", "Chicken", "Zoo")
val life = plants + animalsEl resultat és un nou array que conté tots els elements de l’array plants i els elements de l’array animals.
Accedeix a un element d’un array
Pots accedir a un element d’un array pel seu índex:
val plants = arrayOf("Carrot", "Daikon", "Onion", "Garlic", "Beet")
require(plants[1] == "Daikon")
require(plants[3] == "Garlic")Estàs llegint una vista prèvia.
Inicia sessió per llegir l'article complet. Qualsevol compte obre 4 articles gratuïts al mes; l'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.
Inicia sessió