0Pricing
Groovy & Gradle: JVM Automation and Build Engineering · レッスン

Groovyコレクションの拡張機能

データ操作をより簡単で表現力豊かにする、GroovyによるJavaコレクションの強力な拡張機能を学びます。

「Groovyコレクションの拡張機能」はCoddyKit上の無料Groovy & Gradle: JVM Automation and Build Engineeringレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはGroovy & Gradle: JVM Automation and Build Engineering学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Groovy & Gradle: JVM Automation and Build Engineeringコースには全4レッスンが含まれています。

このレッスンの一部はまだ翻訳されておらず、英語で表示されています。

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 result

What 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 findAll and counting with count.
  • The convenient Spread Operator *. for bulk property access.

These features make working with data structures in Groovy much more efficient and enjoyable!

よくある質問

「Groovyコレクションの拡張機能」レッスンは無料ですか?

はい。「Groovyコレクションの拡張機能」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Groovy & Gradle: JVM Automation and Build Engineeringコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Groovy & Gradle: JVM Automation and Build Engineeringコースには全4レッスンが含まれています。

「Groovyコレクションの拡張機能」で何を学びますか?

データ操作をより簡単で表現力豊かにする、GroovyによるJavaコレクションの強力な拡張機能を学びます。 ブラウザで直接実行するハンズオンコードでGroovy & Gradle: JVM Automation and Build Engineeringを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Groovy & Gradle: JVM Automation and Build Engineeringを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのGroovy & Gradle: JVM Automation and Build Engineeringは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「Groovyコレクションの拡張機能」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このGroovy & Gradle: JVM Automation and Build Engineeringレッスンでコードを書いて実行できますか?

はい。すべてのGroovy & Gradle: JVM Automation and Build Engineeringレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Groovyコレクションの拡張機能
  2. Groovyのクロージャを理解する
  3. Groovyによる関数型パターン
  4. カリー化とクロージャの合成
← Groovy & Gradle: JVM Automation and Build Engineeringに戻る