diff --git a/Exercise.java b/Exercise.java index c8c512a..a8fab57 100644 --- a/Exercise.java +++ b/Exercise.java @@ -4,14 +4,14 @@ public static void main(String[] args) { Student steffen = new Student("Steffen", 28); Student kid = new Student("Kind", 15); - FilteredAdultStudents adultStudents = new FilteredAdultStudents(); + FilteredStudents adultStudents = new FilteredStudents((student) -> student.age > 18); adultStudents.add(steffen); adultStudents.add(kid); adultStudents.printStudents(); System.out.println("-----------------------"); - FilteredTeenStudents teenStudents = new FilteredTeenStudents(); + FilteredStudents teenStudents = new FilteredStudents(student -> student.age < 18); teenStudents.add(steffen); teenStudents.add(kid); teenStudents.printStudents(); diff --git a/FilteredAdultStudents.java b/FilteredAdultStudents.java deleted file mode 100644 index 9132267..0000000 --- a/FilteredAdultStudents.java +++ /dev/null @@ -1,19 +0,0 @@ -import java.util.ArrayList; - -public class FilteredAdultStudents { - private ArrayList students; - - public FilteredAdultStudents() { - this.students = new ArrayList<>(); - } - - public void add(Student student) { - if (student.age > 18) { - this.students.add(student); - } - } - - public void printStudents() { - this.students.forEach((student) -> System.out.println(student)); - } -} diff --git a/FilteredStudents.java b/FilteredStudents.java new file mode 100644 index 0000000..f83d166 --- /dev/null +++ b/FilteredStudents.java @@ -0,0 +1,22 @@ +import java.util.ArrayList; +import java.util.function.Predicate; + +public class FilteredStudents { + private ArrayList students; + private Predicate mandatoryFilter; + + public FilteredStudents(Predicate filter) { + this.students = new ArrayList<>(); + this.mandatoryFilter = filter; + } + + public void add(Student element) { + if (this.mandatoryFilter.test(element)) { + this.students.add(element); + } + } + + public void printStudents() { + this.students.forEach((student) -> System.out.println(student)); + } +} diff --git a/FilteredTeenStudents.java b/FilteredTeenStudents.java deleted file mode 100644 index 62c675c..0000000 --- a/FilteredTeenStudents.java +++ /dev/null @@ -1,19 +0,0 @@ -import java.util.ArrayList; - -public class FilteredTeenStudents { - private ArrayList students; - - public FilteredTeenStudents() { - this.students = new ArrayList<>(); - } - - public void add(Student student) { - if (student.age < 18) { - this.students.add(student); - } - } - - public void printStudents() { - this.students.forEach((student) -> System.out.println(student)); - } -}