From 4226f4a4070ac921668ca93fcfdfc5adc8765af1 Mon Sep 17 00:00:00 2001 From: ngdeqi Date: Fri, 16 Sep 2022 17:25:32 +0800 Subject: [PATCH 1/3] Import libraries portion in hunk --- src/se/edu/inclass/Main.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 25ea5d7..f17d9ee 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -2,10 +2,13 @@ import se.edu.inclass.data.DataManager; import se.edu.inclass.task.Deadline; +import se.edu.inclass.task.Event; import se.edu.inclass.task.Task; import se.edu.inclass.task.TaskNameComparator; +import java.sql.Array; import java.util.ArrayList; +import java.util.Arrays; public class Main { From 443a5ca157b40e95a8e22bcdf9fef451c578a28c Mon Sep 17 00:00:00 2001 From: ngdeqi Date: Fri, 16 Sep 2022 17:26:19 +0800 Subject: [PATCH 2/3] Add streams --- TaskS.iml | 11 +++++++++ src/se/edu/inclass/Main.java | 30 ++++++++++++++++++++++-- src/se/edu/inclass/data/DataManager.java | 4 ++-- 3 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 TaskS.iml diff --git a/TaskS.iml b/TaskS.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/TaskS.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index f17d9ee..cb64c6d 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -18,10 +18,13 @@ public static void main(String[] args) { DataManager dm = new DataManager("./data/data.txt"); ArrayList tasksData = dm.loadData(); + System.out.println("All data: "); + printDataUsingStream(tasksData); + System.out.println("Printing deadlines"); - printDeadlines(tasksData); + printDeadlinesUsingStream(tasksData); - System.out.println("Total number of deadlines: " + countDeadlines(tasksData)); + System.out.println("Total number of deadlines: " + countDeadlinesUsingStream(tasksData)); } @@ -35,17 +38,40 @@ 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 loop: "); for (Task t : tasksData) { System.out.println(t); } } + public static void printDataUsingStream(ArrayList tasks) { + tasks.stream() + .forEach(System.out::println); + } + + public static void printDeadlines(ArrayList tasksData) { + System.out.println("Print deadlines using loops: "); for (Task t : tasksData) { if (t instanceof Deadline) { System.out.println(t); } } + + } + + public static void printDeadlinesUsingStream(ArrayList tasks) { + tasks.parallelStream() + .filter(n -> n instanceof Deadline) + .forEach(System.out::println); } } \ No newline at end of file diff --git a/src/se/edu/inclass/data/DataManager.java b/src/se/edu/inclass/data/DataManager.java index 7c6db5e..d6893bc 100644 --- a/src/se/edu/inclass/data/DataManager.java +++ b/src/se/edu/inclass/data/DataManager.java @@ -65,8 +65,8 @@ public ArrayList loadData() { private ArrayList parse(ArrayList dataItems) { ArrayList allTasks = new ArrayList<>(); for (String line : dataItems) { - String taskType = getTaskType(line); - String taskDescription = getTaskDescription(line); + String taskType = getTaskType(line); //SLAP + String taskDescription = getTaskDescription(line); //SLAP switch (taskType) { case "T": ToDo todo = new ToDo(taskDescription); From 093e617bd7477cfed98ca8fd47e5d9c1ce91420f Mon Sep 17 00:00:00 2001 From: ngdeqi Date: Fri, 16 Sep 2022 17:52:50 +0800 Subject: [PATCH 3/3] Add Streams sort --- TaskS.iml | 11 ----------- src/se/edu/inclass/Main.java | 14 ++++++++++++++ src/se/edu/inclass/task/TaskNameComparator.java | 1 + 3 files changed, 15 insertions(+), 11 deletions(-) delete mode 100644 TaskS.iml diff --git a/TaskS.iml b/TaskS.iml deleted file mode 100644 index c90834f..0000000 --- a/TaskS.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index cb64c6d..ac75ca3 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -10,6 +10,8 @@ import java.util.ArrayList; import java.util.Arrays; +import static java.util.stream.Collectors.toList; + public class Main { private TaskNameComparator taskNameComparator; @@ -24,6 +26,8 @@ public static void main(String[] args) { System.out.println("Printing deadlines"); printDeadlinesUsingStream(tasksData); + ArrayList filteredList = filterTaskByString(tasksData, "11"); + System.out.println("Data with string 11" + filteredList); System.out.println("Total number of deadlines: " + countDeadlinesUsingStream(tasksData)); } @@ -72,6 +76,16 @@ public static void printDeadlines(ArrayList tasksData) { public static void printDeadlinesUsingStream(ArrayList tasks) { tasks.parallelStream() .filter(n -> n instanceof Deadline) + .sorted((a,b) -> a.getDescription(). + compareToIgnoreCase(b.getDescription())) .forEach(System.out::println); } + + public static ArrayList filterTaskByString(ArrayList tasks, String filterString) { + ArrayList filteredList = (ArrayList) tasks.stream() + .filter(t -> t.getDescription().contains(filterString)) + .collect(toList()); + + return filteredList; + } } \ No newline at end of file diff --git a/src/se/edu/inclass/task/TaskNameComparator.java b/src/se/edu/inclass/task/TaskNameComparator.java index 3f7d01a..e799059 100644 --- a/src/se/edu/inclass/task/TaskNameComparator.java +++ b/src/se/edu/inclass/task/TaskNameComparator.java @@ -8,4 +8,5 @@ public class TaskNameComparator implements Comparator { public int compare(Task t1, Task t2) { return t1.getDescription().toLowerCase().compareTo(t2.getDescription().toLowerCase()); } + }