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 19ca657..a4a9ffe 100644
--- a/src/main/java/dev/Main.java
+++ b/src/main/java/dev/Main.java
@@ -11,11 +11,14 @@ public class Main {
public static void main(String[] args) throws Exception {
+ boolean once = true;
+
Scanner scanner = new Scanner(System.in);
StudentManager manager = new StudentManager();
while (true) {
+ System.out.println("==================================");
System.out.println("""
1.Load students
@@ -23,41 +26,59 @@ 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");
+ if(once){
+ 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");
+ once = false;
+
+
+
+ }
+ else {
+ System.out.println("you have load students befor");
+ }
- // merge results
}
@@ -87,6 +108,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);
}