This document provides an overview of Groovy's collection API. It discusses how Groovy treats many objects like collections, including strings, numbers, and regular expressions. It demonstrates various collection notation and operations, including lists, maps, ranges, and spread operators. It also summarizes common collection methods like each, find, collect, reducers, and useful utility methods like groupBy, countBy, and set operations.
27. mutability
•
•
•
•
all methods return new collections/objects
•
a few exceptions exist, such as push/pop and sort(boolean mutate)
objects and collections are generally mutable
use asImmutable(), asSynchronized() for multithreading
or better: use gpars (included in groovy jdk)
•
(that’s a different talk - coming up on groovy meetup!)
Ta litt tid hero
- isNumber er en String operasjon (ikke en collection operasjon)
- Collections har ikke properties, så variant 2 representerer ikke noen tvetydigheter
Trofast, første møtet
Returnerer ingenting (jo, umodifisert collection)
Bare en vanlig for-loop, en blindvei på veien mot funksjonell nirvana
Avhengig av side-effekter for å utføre noe.
find burde kanskje hete findFirst
burde vært en alias for filter - det er det ikke
Heter map i mange språk, men collect passer godt i en java-verden
map henviser jo til noe helt annet
Veldig nyttig: hvis man vil ha map: bruk collectEntries, returner en array [key, val]
tygg på navnet: godt navn
Fra 30000 fot: bilde!!
Reducers - noen kaller det foldLeft, silly :)
(alle disse tar også transformer/comparator for ikke-standard sammenligning)
Dette er lett ;)
Burde hett reduce. foldLeft i mange språk. foldRight Mangler i groovy.
Ta litt tid: 1) initial value 2) to understand: closure returns next accumulator
Bare mer komplisert. Hva gjør den nullen der? (indikerer at raden skal filtreres bort - ikke akkurat selvforklarende)
Jeg nevner dette for det ikke står i doken
Her er de fleste collection-metoder (+ noen fler) definert resten er i StringGroovyMethods