recursive.codes


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:

Image by romaneau from Pixabay



Related Posts

Running Database Queries With REST via a Database Tools Connection (IE: The Super Easy Way)

Running Database Queries With REST via a Database Tools Connection (IE: The Super Easy Way)

I recently blogged about a brand-new service in the Oracle Cloud - Database Tools. It's a safe, secure way to store your database credentials in the...

Easy and Secure Oracle Database Connections With Database Tools

Easy and Secure Oracle Database Connections With Database Tools

There's a brand new tool in town, and it's ready to make your life a whole lot easier if you work with Oracle DB in the cloud. It's called "Database Tools...

Quick Pub/Sub Testing for Oracle Advanced Queuing With a Command Line Interface (CLI)

Quick Pub/Sub Testing for Oracle Advanced Queuing With a Command Line Interface (CLI)

I have been spending a lot of time playing around with Oracle Advanced Queuing (AQ) lately and one of the things that has bothered me is the lack of a ...

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!