From f09b91d8c2b10244297d69debb2764090daa523d Mon Sep 17 00:00:00 2001 From: mohammadreza Date: Thu, 4 Jun 2026 19:01:55 +0330 Subject: [PATCH] implement all TODO tasks --- src/main/java/dev/Main.java | 24 ++++++++++++++----- src/main/java/dev/model/Student.java | 9 +++++-- src/main/java/dev/service/StudentManager.java | 17 +++++++++++++ src/main/java/dev/thread/StudentLoader.java | 10 ++++++++ src/main/java/dev/utils/FileManager.java | 4 +--- 5 files changed, 53 insertions(+), 11 deletions(-) diff --git a/src/main/java/dev/Main.java b/src/main/java/dev/Main.java index 19ca657..d82cf9b 100644 --- a/src/main/java/dev/Main.java +++ b/src/main/java/dev/Main.java @@ -37,19 +37,19 @@ public class Main { // Split data into 3 parts - List part1 = null; + List part1 = data.subList(0, data.size()*35/100); - List part2 = null; + List part2 = data.subList(data.size()*35/100, data.size()*7/10); - List part3 = null; + List part3 = data.subList(data.size()*7/10, data.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: @@ -57,8 +57,20 @@ public class Main { // join() + t1.start(); + t2.start(); + t3.start(); + + t1.join(); + t2.join(); + t3.join(); + // merge results + manager.addStudents(t1.getStudents()); + manager.addStudents(t2.getStudents()); + manager.addStudents(t3.getStudents()); + } case 2 -> { diff --git a/src/main/java/dev/model/Student.java b/src/main/java/dev/model/Student.java index f0484f4..e33b3cf 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 @@ -64,7 +64,12 @@ public class Student { // Step 3: // Compare IDs - return false; + if (obj == null) + return false; + + Student st = (Student) obj; + + return this.getId() == st.getId(); } @Override diff --git a/src/main/java/dev/service/StudentManager.java b/src/main/java/dev/service/StudentManager.java index 403a1c6..f82575f 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 st : students) { + + if (st.getId() == id) + return st; + } + return null; } @@ -39,6 +47,15 @@ public class StudentManager { // Remove student + for (Student st : students) { + + if (st.getId() == id) { + students.remove(st); + return true; + } + + } + return false; } diff --git a/src/main/java/dev/thread/StudentLoader.java b/src/main/java/dev/thread/StudentLoader.java index ab47522..d414259 100644 --- a/src/main/java/dev/thread/StudentLoader.java +++ b/src/main/java/dev/thread/StudentLoader.java @@ -38,15 +38,25 @@ public class StudentLoader extends Thread { // TODO: // split line + List parts = List.of(line.split(",")); + // TODO: // read values + int id = Integer.parseInt(parts.get(0)); + String name = parts.get(1); + String major = parts.get(2); + double gpa = Double.parseDouble(parts.get(3)); + // TODO: // create Student + Student currentStudent = new Student(id, name, major, gpa); + // TODO: // add to students list + students.add(currentStudent); } } diff --git a/src/main/java/dev/utils/FileManager.java b/src/main/java/dev/utils/FileManager.java index da7f6f5..075879c 100644 --- a/src/main/java/dev/utils/FileManager.java +++ b/src/main/java/dev/utils/FileManager.java @@ -18,9 +18,7 @@ public class FileManager { while ((line = reader.readLine()) != null) { - // TODO: - - // Add line to list + lines.add(line); }