From 8b6e51dc0d897a923ae9c023c4e2a60a62f076e4 Mon Sep 17 00:00:00 2001 From: Brennanzuz Date: Fri, 17 Feb 2023 17:07:47 +0800 Subject: [PATCH] Added UsingStreams methods to print deadlines and tasks based on streams --- src/se/edu/inclass/Main.java | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index aa9516c..5dd050a 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -17,10 +17,14 @@ public static void main(String[] args) { ArrayList tasksData = dm.loadData(); printData(tasksData); - System.out.println(); - System.out.println("Printing deadlines"); - printDeadlines(tasksData); - +// System.out.println(); +// System.out.println("Printing deadlines"); +// printDeadlines(tasksData); +// +// System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); +// printData(tasksData); +// printDataUSingStreams(tasksData); + printDeadlinesUsingStream(tasksData); System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); } @@ -34,18 +38,37 @@ private static int countDeadlines(ArrayList tasksData) { } return count; } + private static int countDeadlinesUsingStream(ArrayList tasks) { + int count = (int)tasks.stream() + .filter(t -> t instanceof Deadline) + .count(); + return count; + } public static void printData(ArrayList tasksData) { + System.out.println("Printing data using iteration"); for (Task t : tasksData) { System.out.println(t); } } + public static void printDataUSingStreams(ArrayList tasks) { + System.out.println("Printing data using streams"); + tasks.stream() //convert to stream + .forEach(System.out::println); + } public static void printDeadlines(ArrayList tasksData) { + System.out.println("Printing deadline using iteration"); for (Task t : tasksData) { if (t instanceof Deadline) { System.out.println(t); } } } + public static void printDeadlinesUsingStream(ArrayList tasks) { + System.out.println("Printing deadlines using streams"); + tasks.stream() + .filter(t -> t instanceof Deadline) //filter takes a predicate + .forEach(System.out::println); + } }