diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 28a58c3..6d69fcd 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -6,6 +6,7 @@ import se.edu.inclass.task.TaskNameComparator; import java.util.ArrayList; +import java.util.Locale; import java.util.stream.Collectors; public class Main { @@ -21,10 +22,18 @@ public static void main(String[] args) { System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); + + printDeadlineWithStream(tasksData); + ArrayList filteredTasks = filterTaskByString(tasksData, "11"); + System.out.println("Filtered tasks"); + printData(filteredTasks); + + printData(tasksData); printTaskWithStream(tasksData); printDeadlineWithStream(tasksData); System.out.println("Count of Deadlines with Stream: " + countDeadlineWithStream(tasksData)); + } private static int countDeadlines(ArrayList tasksData) { @@ -42,12 +51,6 @@ public static void printTaskWithStream(ArrayList tasks) { tasks.stream().forEach(System.out::println); } - public static void printDeadlineWithStream(ArrayList tasks) { - System.out.println("Print Deadlines with stream:"); - tasks.stream() - .filter((t) -> (t instanceof Deadline)) - .forEach(System.out::println); - } private static int countDeadlineWithStream(ArrayList tasks) { int count = 0; @@ -69,4 +72,19 @@ public static void printDeadlines(ArrayList tasksData) { } } } + + public static void printDeadlineWithStream(ArrayList tasks) { + System.out.println("Print with stream:"); + tasks.stream(). + filter((t) -> (t instanceof Deadline)). + sorted((t1, t2) -> t1.getDescription().toLowerCase(Locale.ROOT).compareTo(t2.getDescription().toLowerCase(Locale.ROOT))). + forEach(System.out::println); + } + + public static ArrayList filterTaskByString(ArrayList tasks, String filterString) { + ArrayList filteredTasks = (ArrayList) tasks.stream() + .filter((t) -> t.getDescription().contains(filterString)) + .collect(Collectors.toList()); + return filteredTasks; + } }