From d4f871015fad46058027e6ddd39e4a4ef951edc7 Mon Sep 17 00:00:00 2001 From: YatPang Date: Fri, 17 Feb 2023 17:06:26 +0800 Subject: [PATCH] Add Streams --- src/se/edu/inclass/Main.java | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index aa9516c..c8321db 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -16,13 +16,14 @@ public static void main(String[] args) { DataManager dm = new DataManager("./data/data.txt"); ArrayList tasksData = dm.loadData(); - printData(tasksData); System.out.println(); System.out.println("Printing deadlines"); + //printDeadlines(tasksData); printDeadlines(tasksData); - System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); - + System.out.println("Total number of deadlines: " + countDeadlinesUsingStreams(tasksData)); + //printData(tasksData); + //printDataUsingStream(tasksData); } private static int countDeadlines(ArrayList tasksData) { @@ -36,11 +37,17 @@ private static int countDeadlines(ArrayList tasksData) { } public static void printData(ArrayList tasksData) { + System.out.println("Print data using iteration:"); for (Task t : tasksData) { System.out.println(t); } } + public static void printDataUsingStream(ArrayList tasks) { + + tasks.parallelStream() //convert to stream + .forEach(System.out::println); + } public static void printDeadlines(ArrayList tasksData) { for (Task t : tasksData) { if (t instanceof Deadline) { @@ -48,4 +55,17 @@ public static void printDeadlines(ArrayList tasksData) { } } } + public static void printDeadLinesUsingStreams(ArrayList tasks) { + System.out.println("Print deadlines using streams"); + tasks.stream() + .filter(t -> t instanceof Deadline) //filter takes a predicate/condition + .forEach(System.out::println); + } + + public static int countDeadlinesUsingStreams(ArrayList tasks) { + int count = (int) tasks.stream() + .filter(t -> t instanceof Deadline) + .count(); + return count; + } }