The Personal Blog of Todd Sharp

A Groovy Alternative To Java 8 Streams and Collectors

Posted By: Todd Sharp on 3/22/2017 4:19 GMT
Tagged: Groovy, Java
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?

There's no built in method to the DZone summarizingInt() example, 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:

Note: Comments are currently closed on this blog. Disqus is simply too bloated to justify its use with the low volume of comments on this blog. Please visit my contact page if you have something to say!