From 3d00e97166c83afba665838cf48309d44693013a Mon Sep 17 00:00:00 2001 From: t170815518 Date: Fri, 18 Sep 2020 17:05:47 +0800 Subject: [PATCH 1/2] Change implementation of Stream --- src/se/edu/inclass/Main.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 3781393..c930f03 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -34,16 +34,19 @@ private static int countDeadlines(ArrayList tasksData) { } public static void printData(ArrayList tasksData) { - for (Task t : tasksData) { - System.out.println(t); - } + tasksData.stream().forEach(System.out::println); + } + + + public static int countDeadlinesWithStreams(ArrayList taskData) { + taskData.stream() + .filter(n -> n instanceof Deadline) + .count(); } public static void printDeadlines(ArrayList tasksData) { - for (Task t : tasksData) { - if (t instanceof Deadline) { - System.out.println(t); - } - } + tasksData.stream() + .filter((n) -> n instanceof Deadline) + .forEach(System.out::println); } } From dbfc6f5c4f7d5f98d74360b39ae7a443ea9ea475 Mon Sep 17 00:00:00 2001 From: t170815518 Date: Fri, 18 Sep 2020 17:44:01 +0800 Subject: [PATCH 2/2] Add filterString --- src/se/edu/inclass/Main.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 3781393..d5eece6 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -20,7 +20,9 @@ public static void main(String[] args) { printDeadlines(tasksData); System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); + printDeadlinesUsingStreams(tasksData); + System.out.println(filterByString(tasksData, "11")); } private static int countDeadlines(ArrayList tasksData) { @@ -46,4 +48,17 @@ public static void printDeadlines(ArrayList tasksData) { } } } + + public static void printDeadlinesUsingStreams(ArrayList taskData) { + taskData.stream() + .filter(n -> n instanceof Deadline) + .sorted( (a,b) -> a.getDescription().toLowerCase().compareTo(b.getDescription().toLowerCase())) + .forEach(System.out::println); + } + + public static ArrayList filterByString(ArrayList taskData, String filterString) { + ArrayList filteredList = (ArrayList) taskData.stream().filter(n -> n.getDescription().contains(filterString)). + collect(Collectors.toList()); + return filteredList; + } }