diff --git a/src/se/edu/inclass/Main.java b/src/se/edu/inclass/Main.java index 25ea5d7..ac75ca3 100644 --- a/src/se/edu/inclass/Main.java +++ b/src/se/edu/inclass/Main.java @@ -2,10 +2,15 @@ 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; + +import static java.util.stream.Collectors.toList; public class Main { @@ -15,10 +20,15 @@ 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)); + ArrayList filteredList = filterTaskByString(tasksData, "11"); + System.out.println("Data with string 11" + filteredList); + System.out.println("Total number of deadlines: " + countDeadlinesUsingStream(tasksData)); } @@ -32,17 +42,50 @@ 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) + .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/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); 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()); } + }