From d9bc9d8eb9b05065d3d2e58317691a8d238f680b Mon Sep 17 00:00:00 2001 From: Mahdi Date: Wed, 27 May 2026 21:01:44 -0700 Subject: [PATCH 1/2] done --- src/main/java/dev/Main.java | 38 ++++++++++++------- src/main/java/dev/model/Student.java | 25 ++++++------ src/main/java/dev/service/StudentManager.java | 32 +++++++++------- src/main/java/dev/thread/StudentLoader.java | 20 ++-------- src/main/java/dev/utils/FileManager.java | 4 +- 5 files changed, 59 insertions(+), 60 deletions(-) diff --git a/src/main/java/dev/Main.java b/src/main/java/dev/Main.java index 19ca657..01163d0 100644 --- a/src/main/java/dev/Main.java +++ b/src/main/java/dev/Main.java @@ -4,6 +4,7 @@ import dev.service.StudentManager; import dev.thread.StudentLoader; import dev.utils.FileManager; +import java.util.ArrayList; import java.util.List; import java.util.Scanner; @@ -16,6 +17,7 @@ public class Main { StudentManager manager = new StudentManager(); while (true) { + System.out.println("=================================="); System.out.println(""" 1.Load students @@ -23,41 +25,50 @@ public class Main { 3.Remove student 4.Print students 5.Exit + Chose: """); + + int choice = scanner.nextInt(); + switch (choice) { case 1 -> { List data = FileManager.loadStudents("students.txt"); - // TODO: + int n = data.size(); - // Split data into 3 parts + List part1 = data.subList(0 , n/3 ); - List part1 = null; + List part2 = data.subList(n/3 , (2*n)/3); - List part2 = null; + List part3 = data.subList((2*n)/3 , n); - List part3 = null; - // 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: + t1.start(); + t2.start(); + t3.start(); - // start() + t1.join(); + t2.join(); + t3.join(); - // join() + manager.addStudents(t1.getStudents()); + manager.addStudents(t2.getStudents()); + manager.addStudents(t3.getStudents()); + + System.out.println("Loading Done"); - // merge results } @@ -87,6 +98,7 @@ public class Main { manager.printStudents(); case 5 -> { + System.out.println("Good by"); return; } diff --git a/src/main/java/dev/model/Student.java b/src/main/java/dev/model/Student.java index f0484f4..1f649a8 100644 --- a/src/main/java/dev/model/Student.java +++ b/src/main/java/dev/model/Student.java @@ -41,30 +41,27 @@ public class Student { @Override public int hashCode() { - // TODO: - // Return custom hash + return id % 97; - // Example: - // return id % 97; - - return 0; } @Override public boolean equals(Object obj) { - // TODO: + if(obj == null){ + return false; + } - // Step 1: - // Check null + Student std = (Student) obj; - // Step 2: - // Convert obj to Student + if(std.hashCode() == this.hashCode()){ + return true; + } + else { + return false; + } - // Step 3: - // Compare IDs - return false; } @Override diff --git a/src/main/java/dev/service/StudentManager.java b/src/main/java/dev/service/StudentManager.java index 403a1c6..5a7d78c 100644 --- a/src/main/java/dev/service/StudentManager.java +++ b/src/main/java/dev/service/StudentManager.java @@ -1,6 +1,7 @@ package dev.service; import dev.model.Student; +import dev.utils.FileManager; import java.util.ArrayList; @@ -11,35 +12,38 @@ public class StudentManager { public void addStudents(ArrayList newStudents) { - // TODO: - - // Merge students - - // Hint: - // addAll() + this.students.addAll(newStudents); } public Student searchStudent(int id) { - // TODO: - - // Loop through students - - // Compare IDs + for(Student st : students){ + if(st.getId() == id){ + return st; + } + } return null; } public boolean removeStudent(int id) { - // TODO: + Student removeable = null; - // Find student + for(Student st: students){ + if(st.getId() == id){ + removeable = st; + } + } - // Remove student + if(removeable!= null){ + students.remove(removeable); + return true; + } return false; + } public void printStudents() { diff --git a/src/main/java/dev/thread/StudentLoader.java b/src/main/java/dev/thread/StudentLoader.java index ab47522..331a903 100644 --- a/src/main/java/dev/thread/StudentLoader.java +++ b/src/main/java/dev/thread/StudentLoader.java @@ -25,27 +25,15 @@ public class StudentLoader extends Thread { @Override public void run() { - // TODO: - - /* - Example line: - - 1001,Aryan,Computer Science,3.7 - */ - for (String line : lines) { - // TODO: - // split line + String[] data = line.split(","); - // TODO: - // read values + Student mystd = new Student(Integer.parseInt(data[0]) , data[1] , + data[2] , Double.parseDouble(data[3])); - // TODO: - // create Student + students.add(mystd); - // TODO: - // add to students list } diff --git a/src/main/java/dev/utils/FileManager.java b/src/main/java/dev/utils/FileManager.java index da7f6f5..ab55c75 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); } -- 2.54.0 From 56414f7604ca801154aab2a48682ac94250e873b Mon Sep 17 00:00:00 2001 From: Mahdi Date: Wed, 27 May 2026 21:18:28 -0700 Subject: [PATCH 2/2] you can just load onc time --- .idea/.gitignore | 10 ++++++++ .idea/compiler.xml | 13 ++++++++++ .idea/encodings.xml | 7 ++++++ .idea/jarRepositories.xml | 20 ++++++++++++++++ .idea/misc.xml | 12 ++++++++++ .idea/vcs.xml | 6 +++++ src/main/java/dev/Main.java | 48 ++++++++++++++++++++++--------------- 7 files changed, 97 insertions(+), 19 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..ab1f416 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Ignored default folder with query files +/queries/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..a590144 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..4158879 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..eba6e1f --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/dev/Main.java b/src/main/java/dev/Main.java index 01163d0..a4a9ffe 100644 --- a/src/main/java/dev/Main.java +++ b/src/main/java/dev/Main.java @@ -4,7 +4,6 @@ import dev.service.StudentManager; import dev.thread.StudentLoader; import dev.utils.FileManager; -import java.util.ArrayList; import java.util.List; import java.util.Scanner; @@ -12,6 +11,8 @@ public class Main { public static void main(String[] args) throws Exception { + boolean once = true; + Scanner scanner = new Scanner(System.in); StudentManager manager = new StudentManager(); @@ -37,37 +38,46 @@ public class Main { case 1 -> { - List data = FileManager.loadStudents("students.txt"); + if(once){ + List data = FileManager.loadStudents("students.txt"); - int n = data.size(); + int n = data.size(); - List part1 = data.subList(0 , n/3 ); + List part1 = data.subList(0 , n/3 ); - List part2 = data.subList(n/3 , (2*n)/3); + List part2 = data.subList(n/3 , (2*n)/3); - List part3 = data.subList((2*n)/3 , n); + List part3 = data.subList((2*n)/3 , n); - StudentLoader t1 = new StudentLoader(part1); + StudentLoader t1 = new StudentLoader(part1); - StudentLoader t2 = new StudentLoader(part2); + StudentLoader t2 = new StudentLoader(part2); - StudentLoader t3 = new StudentLoader(part3); + StudentLoader t3 = new StudentLoader(part3); - t1.start(); - t2.start(); - t3.start(); + t1.start(); + t2.start(); + t3.start(); - t1.join(); - t2.join(); - t3.join(); + t1.join(); + t2.join(); + t3.join(); - manager.addStudents(t1.getStudents()); - manager.addStudents(t2.getStudents()); - manager.addStudents(t3.getStudents()); + manager.addStudents(t1.getStudents()); + manager.addStudents(t2.getStudents()); + manager.addStudents(t3.getStudents()); - System.out.println("Loading Done"); + System.out.println("Loading Done"); + once = false; + + + + } + else { + System.out.println("you have load students befor"); + } } -- 2.54.0