diff --git a/src/main/java/dev/Main.java b/src/main/java/dev/Main.java index 19ca657..c53f863 100644 --- a/src/main/java/dev/Main.java +++ b/src/main/java/dev/Main.java @@ -37,28 +37,40 @@ public class Main { // Split data into 3 parts - List part1 = null; + int size = data.size(); - List part2 = null; - - List part3 = null; + List part1 = data.subList(0, size / 3); + List part2 = data.subList(size / 3, 2 * size / 3); + List part3 = data.subList(2 * size / 3, size); // TODO: - StudentLoader t1 = null; + StudentLoader t1 = new StudentLoader(part1); - StudentLoader t2 = null; + StudentLoader t2 = new StudentLoader(part2); - StudentLoader t3 = null; + StudentLoader t3 = new StudentLoader(part3); // TODO: // start() + t1.start(); + t2.start(); + t3.start(); + // join() + t1.join(); + t2.join(); + t3.join(); + // merge results + manager.addStudents(t1.getStudents()); + manager.addStudents(t2.getStudents()); + manager.addStudents(t3.getStudents()); + } case 2 -> { @@ -96,4 +108,4 @@ public class Main { } -} \ No newline at end of file +} diff --git a/src/main/java/dev/model/Student.java b/src/main/java/dev/model/Student.java index f0484f4..f72954e 100644 --- a/src/main/java/dev/model/Student.java +++ b/src/main/java/dev/model/Student.java @@ -47,7 +47,7 @@ public class Student { // Example: // return id % 97; - return 0; + return id % 97; } @Override @@ -58,13 +58,19 @@ public class Student { // Step 1: // Check null + if (obj == null) { + return false; + } + // Step 2: // Convert obj to Student + Student student = (Student) obj; + // Step 3: // Compare IDs - return false; + return this.id == student.id; } @Override diff --git a/src/main/java/dev/service/StudentManager.java b/src/main/java/dev/service/StudentManager.java index 403a1c6..03787df 100644 --- a/src/main/java/dev/service/StudentManager.java +++ b/src/main/java/dev/service/StudentManager.java @@ -18,6 +18,8 @@ public class StudentManager { // Hint: // addAll() + students.addAll(newStudents); + } public Student searchStudent(int id) { @@ -28,6 +30,12 @@ public class StudentManager { // Compare IDs + for (Student student : students) { + if (student.getId() == id) { + return student; + } + } + return null; } @@ -39,6 +47,13 @@ public class StudentManager { // Remove student + Student student = searchStudent(id); + + if (student != null) { + students.remove(student); + return true; + } + return false; } @@ -52,4 +67,4 @@ public class StudentManager { } -} \ No newline at end of file +} diff --git a/src/main/java/dev/thread/StudentLoader.java b/src/main/java/dev/thread/StudentLoader.java index ab47522..2630e59 100644 --- a/src/main/java/dev/thread/StudentLoader.java +++ b/src/main/java/dev/thread/StudentLoader.java @@ -1,7 +1,5 @@ package dev.thread; - - import dev.model.Student; import java.util.ArrayList; @@ -38,15 +36,26 @@ public class StudentLoader extends Thread { // TODO: // split line + String[] parts = line.split(","); + // TODO: // read values + int id = Integer.parseInt(parts[0]); + String name = parts[1]; + String major = parts[2]; + double gpa = Double.parseDouble(parts[3]); + // TODO: // create Student + Student student = new Student(id, name, major, gpa); + // TODO: // add to students list + students.add(student); + } } @@ -56,4 +65,4 @@ public class StudentLoader extends Thread { return students; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/utils/FileManager.java b/src/main/java/dev/utils/FileManager.java index da7f6f5..bea11a4 100644 --- a/src/main/java/dev/utils/FileManager.java +++ b/src/main/java/dev/utils/FileManager.java @@ -22,6 +22,8 @@ public class FileManager { // Add line to list + lines.add(line); + } reader.close(); @@ -29,4 +31,4 @@ public class FileManager { return lines; } -} \ No newline at end of file +}