lots of exercises in java... from https://github.com/exercism/java

Strain.java 638B

123456789101112131415161718192021222324252627
  1. import java.util.ArrayList;
  2. import java.util.List;
  3. import java.util.function.Predicate;
  4. public class Strain {
  5. public static <T> List<T> keep(List<T> collection, Predicate<T> predicate) {
  6. return filter(collection, predicate);
  7. }
  8. public static <T> List<T> discard(List<T> collection, Predicate<T> predicate) {
  9. return filter(collection, predicate.negate());
  10. }
  11. public static <T> List<T> filter(List<T> collection, Predicate<T> predicate) {
  12. List<T> filteredCollection = new ArrayList<>();
  13. for (T item : collection) {
  14. if (predicate.test(item)) {
  15. filteredCollection.add(item);
  16. }
  17. }
  18. return filteredCollection;
  19. }
  20. }