Similar to filtering a collection or counting the number of occurrences in a list this example will count the number of non empty strings in a collection. In a related example we demonstrate count non null or empty elements in arraylist using groovy.
Straight up Java
@Test
public void count_non_empty_strings_java () {
List<String> valentineSayings = new ArrayList<String>();
valentineSayings.add("crush");
valentineSayings.add("");
valentineSayings.add("blind date");
valentineSayings.add("puppy luv");
valentineSayings.add("mr right");
valentineSayings.add("");
valentineSayings.add("first kiss");
valentineSayings.add("4 ever yours");
List<String> string = new ArrayList<String>();
string.add("");
valentineSayings.removeAll(string);
assertEquals(6, valentineSayings.size());
}
Java 8
@Test
public void count_non_empty_strings_java_8 () {
List<String> valentineSayings = new ArrayList<>();
valentineSayings.add("crush");
valentineSayings.add("");
valentineSayings.add("blind date");
valentineSayings.add("puppy luv");
valentineSayings.add("mr right");
valentineSayings.add("");
valentineSayings.add("first kiss");
valentineSayings.add("4 ever yours");
long count = valentineSayings.stream().filter(x -> !x.isEmpty()).count();
assertEquals(6, count);
}
Google Guava
@Test
public void count_non_empty_strings_guava () {
List<String> valentineSayings = Lists.newArrayList(
"crush",
"",
"blind date",
"puppy luv",
"mr right",
"",
"first kiss",
"4 ever yours");
int count = FluentIterable.from(valentineSayings).filter(new Predicate<String>() {
@Override
public boolean apply(String input) {
return !input.isEmpty();
}
}).size();
assertEquals(6, count);
}