Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Google Guava Goodness: Matching All Elements in a Collection

DZone's Guide to

Google Guava Goodness: Matching All Elements in a Collection

· Java Zone ·
Free Resource

Verify, standardize, and correct the Big 4 + more– name, email, phone and global addresses – try our Data Quality APIs now at Melissa Developer Portal!

The Google Guava libraries has many useful classes and methods. Normally I write code in Groovy and I am used to working with collections in an intuitive way. But sometimes I need to work with Java on my project and then the Google Guava libraries are a great alternative.

Suppose I want to check if all elements in a collection apply to a certain condition. In Groovy I would write this:

final List<String> list = ['Groovy', 'Rocks']

assert list.every { it.contains('o') }

Now in Java and Google Guava I have the following snippet:

import com.google.common.base.Predicate;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;

import java.util.List;

final List<String> list = Lists.newArrayList("Google", "Guava");

final Predicate<String> startWithG = new Predicate<String>() {
    @Override
    public boolean apply(final String stringValue) {
        return stringValue.startsWith("G");
    }
};

assert Iterables.all(list, startWithG);

If we use a regular expression pattern we can even simplify the previous code to:

import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;

import java.util.List;

final List<String> list = Lists.newArrayList("Google", "Guava");

final Predicate startWithG = Predicates.containsPattern("^G[a-z]+$");

assert Iterables.all(list, startWithG);

 

 

Developers! Quickly and easily gain access to the tools and information you need! Explore, test and combine our data quality APIs at Melissa Developer Portal – home to tools that save time and boost revenue. 

Topics:

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}