Aprimoramentos das coleções do Groovy
Descubra os recursos avançados que o Groovy acrescenta às coleções Java, tornando a manipulação de dados mais simples e expressiva.
Aprimoramentos das coleções do Groovy é uma aula grátis de Groovy & Gradle: JVM Automation and Build Engineering no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Groovy & Gradle: JVM Automation and Build Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Groovy & Gradle: JVM Automation and Build Engineering inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Groovy's Collection Power-Up
Groovy supercharges Java's standard collections (List, Map, Set) with many new, convenient methods. This makes your code shorter, more readable, and much more expressive.
You'll spend less time writing boilerplate and more time solving problems!
Easy List Initialization
Creating and populating lists in Groovy is a breeze. No need for new ArrayList<>() or repetitive add() calls. Just use square brackets []!
class Main {
static void main(String[] args) {
def numbers = [1, 2, 3, 4, 5]
def names = ["Alice", "Bob", "Charlie"]
println "Numbers: " + numbers
println "Names: " + names
}
}The Versatile `each` Method
The each method is your go-to for iterating over collections. It's concise and works with both Lists and Maps.
For lists, it's like a simplified loop. For maps, it iterates over entries.
class Main {
static void main(String[] args) {
def fruits = ["Apple", "Banana", "Cherry"]
fruits.each { fruit ->
println "I love " + fruit
}
}
}Transforming Lists with `collect`
The collect method creates a new list by transforming each element of the original list. It's perfect for mapping items to new values.
class Main {
static void main(String[] args) {
def numbers = [1, 2, 3]
def doubledNumbers = numbers.collect { it * 2 }
println "Original: " + numbers
println "Doubled: " + doubledNumbers
}
}Filtering Elements with `findAll`
Need to select elements that meet specific criteria? Use findAll. It returns a new list containing only the elements for which the closure evaluates to true.
class Main {
static void main(String[] args) {
def ages = [12, 18, 25, 7, 30]
def adults = ages.findAll { it >= 18 }
println "Ages: " + ages
println "Adults: " + adults
}
}Counting Matching Elements
The count method helps you quickly determine how many elements in a collection satisfy a given condition. It returns a single integer.
class Main {
static void main(String[] args) {
def scores = [85, 92, 78, 95, 88]
def highScores = scores.count { it > 90 }
println "Scores: " + scores
println "Number of high scores (>90): " + highScores
}
}Simplified Map Syntax
Groovy makes creating maps incredibly easy using square brackets [] and colons : for key-value pairs. Keys can often be unquoted strings.
class Main {
static void main(String[] args) {
def person = [name: "Anna", age: 30, city: "New York"]
println "Person: " + person
println "Name: " + person.name // Property-style access
println "Age: " + person["age"] // Map-style access
}
}Iterating Over Maps
Just like lists, maps can be iterated using each. The closure for maps typically takes two arguments: key and value.
You can also use eachWithIndex if you need the index.
class Main {
static void main(String[] args) {
def config = [mode: "dev", port: 8080]
config.each { key, value ->
println "${key}: ${value}"
}
}
}Accessing Properties with Spread `*.`
The spread operator *. is a powerful Groovy feature for collections. It applies a property access or method call to all elements in a collection, returning a new list of results.
class Person {
String name
int age
}
class Main {
static void main(String[] args) {
def people = [
new Person(name: "Alice", age: 25),
new Person(name: "Bob", age: 30)
]
def names = people*.name
println "People names: " + names
}
}Collection Challenge
Consider the following Groovy code snippet:
def items = [10, 25, 30, 45, 50]
def result = items.findAll { it > 20 }.collect { it / 5 }
println resultWhat will be the output of this code?
Recap: Groovy's Collection Power
You've explored how Groovy significantly enhances standard Java collections. We covered:
- Simplified List and Map creation.
- Powerful iteration with
each. - Transforming collections with
collect. - Filtering with
findAlland counting withcount. - The convenient Spread Operator
*.for bulk property access.
These features make working with data structures in Groovy much more efficient and enjoyable!
Perguntas Frequentes
A aula “Aprimoramentos das coleções do Groovy” é grátis?
Sim — o texto completo de “Aprimoramentos das coleções do Groovy” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Groovy & Gradle: JVM Automation and Build Engineering, atualize para CoddyKit PRO. O curso de Groovy & Gradle: JVM Automation and Build Engineering inclui 4 aulas no total.
O que vou aprender em “Aprimoramentos das coleções do Groovy”?
Descubra os recursos avançados que o Groovy acrescenta às coleções Java, tornando a manipulação de dados mais simples e expressiva. Você pratica Groovy & Gradle: JVM Automation and Build Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Groovy & Gradle: JVM Automation and Build Engineering?
Nenhuma experiência prévia é necessária. Groovy & Gradle: JVM Automation and Build Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Aprimoramentos das coleções do Groovy”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Groovy & Gradle: JVM Automation and Build Engineering?
Sim. Cada aula de Groovy & Gradle: JVM Automation and Build Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Aprimoramentos das coleções do Groovy
- Compreendendo closures do Groovy
- Padrões funcionais com Groovy
- Curry e Composição de Closures