Probably the best way is to use Guava
List list = new ArrayList();
list.add("How are you");
list.add("How you doing");
list.add("Joe");
list.add("Mike");
Collection filtered = Collections2.filter(list,
Predicates.containsPattern("How"));
print(filtered);
prints
How are you
How you doing
In case you want to get the filtered collection as a list, you can use this (also from Guava):
List filteredList = Lists.newArrayList(Collections2.filter(
list, Predicates.containsPattern("How")));