From bf2895b1b86b2e0524b8985995bf1040b3305a4d Mon Sep 17 00:00:00 2001 From: PingruiLi Date: Sun, 21 Feb 2021 20:34:44 +0800 Subject: [PATCH] add method with lambda --- src/se/edu/inclass/Main.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 3781393..074f2b9 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,6 +22,11 @@ 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); + } private static int countDeadlines(ArrayList tasksData) { @@ -46,4 +52,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; + } }