あるListから、その中の特定の条件を満たす要素だけを含んだListを作りたいという場合はGuavaライブラリのIterables.filterを使うと幸せになれる。
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
...
List<SomeObject> original = ...;
List<SomeObject> filteredList = ImmutableList.copyOf(Iterables.filter(
original, new Predicate<SomeObject>() {
@Override
public boolean apply(SomeObject input) {
// ここで返り値がtrueになる要素だけが結果に含まれるようになる。
...
}
}));