package com.levelup.java.collections;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import com.google.common.base.Predicate;
import com.google.common.collect.FluentIterable;
import com.google.common.collect.Lists;
/**
* This java example will demonstrate counting
* non empty strings in a collection.
*
* @author Justin Musgrove
* @see <a href='http://www.leveluplunch.com/java/examples/count-non-empty-strings-in-collection-arraylist/'>Count non empty strings</a>
*/
public class CountNonEmptyStrings {
@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());
}
@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);
}
@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);
}
}