I recently read this article over at DZone about using Java 8 Streams and Collectors to manipulate and perform calculations on a list of integers. I don't intend to start an argument over which language is better, but my immediate thought was that it would make a good blog post to show how one might perform these tasks in Groovy. Collections in Groovy have long been a shining example of how Groovy enhances Java with convenience methods for common tasks. Here's a recreation of all the examples in the DZone post to show you how easy Groovy makes them:Let's throw together a List of 100 random integers:

Determining the sum and average is quite simple:

Though, average isn't a built in method. So, let's add it using metaprogramming instead:

What about min/max?

summarizingInt()

There's no built in method to the DZoneexample, but we can do either:

Or, again, add a method via metaprogramming:

Partitioning a list? No problem in Groovy, just use groupBy:

Here's the full example in case you'd like to run them all yourself:

Image by romaneau from Pixabay