From 2ed1ded8d4131377da3738e4c0e3e0acb9aa35a2 Mon Sep 17 00:00:00 2001 From: tsx0314 Date: Fri, 17 Feb 2023 17:07:13 +0800 Subject: [PATCH] Update code in lecture --- src/se/edu/inclass/Main.java | 106 ++++++++++++++--------- src/se/edu/inclass/data/DataManager.java | 7 +- 2 files changed, 71 insertions(+), 42 deletions(-) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index aa9516c..335ba79 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -9,43 +9,71 @@ public class Main { - private TaskNameComparator taskNameComparator; - - public static void main(String[] args) { - System.out.println("Welcome to Task (stream) manager\n"); - DataManager dm = new DataManager("./data/data.txt"); - ArrayList tasksData = dm.loadData(); - - printData(tasksData); - System.out.println(); - System.out.println("Printing deadlines"); - printDeadlines(tasksData); - - System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); - - } - - private static int countDeadlines(ArrayList tasksData) { - int count = 0; - for (Task t : tasksData) { - if (t instanceof Deadline) { - count++; - } - } - return count; - } - - public static void printData(ArrayList tasksData) { - for (Task t : tasksData) { - System.out.println(t); - } - } - - public static void printDeadlines(ArrayList tasksData) { - for (Task t : tasksData) { - if (t instanceof Deadline) { - System.out.println(t); - } - } - } + private TaskNameComparator taskNameComparator; + + public static void main(String[] args) { + System.out.println("Welcome to Task (stream) manager\n"); + DataManager dm = new DataManager("./data/data.txt"); // data file + ArrayList tasksData = dm.loadData();//passing the file and put data in array list + + + System.out.println(); + System.out.println("Printing deadlines"); + printDeadlines(tasksData); + + //System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); + System.out.println("Total number of deadlines using stream: " + countDeadlinesUsingStream(tasksData)); + printData(tasksData); + printDataUsingStreams(tasksData); + + } + + private static int countDeadlines(ArrayList tasksData) { + int count = 0; + for (Task t : tasksData) { + if (t instanceof Deadline) { + count++; + } + } + return count; + } + + private static int countDeadlinesUsingStream(ArrayList tasks){ + int count = (int)tasks.stream() //instanceof Deadline - this is the checking point + .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); + } + //System.out.println(); sout + } + + public static void printDataUsingStreams(ArrayList tasks) { + System.out.println("Printing data using stream"); + tasks.stream()// convert in stream + .forEach(System.out::println); //referring the method and refer all the methods in the stream + + } + + public static void printDeadlines(ArrayList tasksData) { + System.out.println("print ddl using it."); + for (Task t : tasksData) { + if (t instanceof Deadline) { + System.out.println(t); + } + } + } + + public static void printDeadlineUsingStream(ArrayList tasks){ + System.out.println("Print DDL using stream"); + tasks.stream() //instanceof Deadline - this is the checking point + .filter(t -> t instanceof Deadline) //predicate - boolean output //lamda function + .forEach(System.out::println); + } } + + diff --git a/src/se/edu/inclass/data/DataManager.java b/src/se/edu/inclass/data/DataManager.java index c3f1030..23833de 100644 --- a/src/se/edu/inclass/data/DataManager.java +++ b/src/se/edu/inclass/data/DataManager.java @@ -17,7 +17,7 @@ public class DataManager { public DataManager(String fileName) { dataFile = new File(fileName); - } + } //file class public File getDataFile() { return dataFile; @@ -45,9 +45,10 @@ private ArrayList readFile() throws IOException { if (dataFile.length() == 0) { System.out.println("empty file"); throw new IOException(); + // } ArrayList dataItems = (ArrayList) Files.readAllLines(dataFile.toPath(), Charset.defaultCharset()); - + //toPath() - get the file path // get all the line and close file return dataItems; } @@ -57,7 +58,7 @@ public ArrayList loadData() { ArrayList dataItems = readFile(); taskList = parse(dataItems); } catch (IOException e) { - e.printStackTrace(); + System.out.println("File access issues."); } return taskList; }