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..a9076af --- /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..652d615 --- /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..438776a 100644 --- a/src/main/java/dev/Main.java +++ b/src/main/java/dev/Main.java @@ -37,27 +37,33 @@ public class Main { // Split data into 3 parts - List part1 = null; + int size = data.size(); + int chunk = (size + 2) / 3; - List part2 = null; + List part1 = data.subList(0, Math.min(chunk, size)); - List part3 = null; + List part2 = data.subList(Math.min(chunk, size), Math.min(2 * chunk, size)); + + List part3 = data.subList(Math.min(2 * chunk, size), size); // TODO: - StudentLoader t1 = null; - - StudentLoader t2 = null; - - StudentLoader t3 = null; + StudentLoader t1 = new StudentLoader(part1); + StudentLoader t2 = new StudentLoader(part2); + StudentLoader t3 = new StudentLoader(part3); // TODO: + t1.start(); + t2.start(); + t3.start(); - // start() + t1.join(); + t2.join(); + t3.join(); - // join() - - // merge results + manager.addStudents(t1.getStudents()); + manager.addStudents(t2.getStudents()); + manager.addStudents(t3.getStudents()); } @@ -96,4 +102,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..84d995f 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,9 @@ public class Student { // Step 3: // Compare IDs - return false; + if (obj == null) return false; + Student other = (Student) obj; + return this.id == other.id; } @Override @@ -78,4 +80,4 @@ public class Student { '}'; } -} \ No newline at end of file +} diff --git a/src/main/java/dev/service/StudentManager.java b/src/main/java/dev/service/StudentManager.java index 403a1c6..a9bbaba 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 + for (Student student : students) { + if (student.getId() == id) { + 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..d4c0863 100644 --- a/src/main/java/dev/thread/StudentLoader.java +++ b/src/main/java/dev/thread/StudentLoader.java @@ -27,26 +27,30 @@ public class StudentLoader extends Thread { // TODO: - /* - Example line: - - 1001,Aryan,Computer Science,3.7 - */ - for (String line : lines) { // 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 +60,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..a84e8f6 100644 --- a/src/main/java/dev/utils/FileManager.java +++ b/src/main/java/dev/utils/FileManager.java @@ -19,14 +19,10 @@ public class FileManager { while ((line = reader.readLine()) != null) { // TODO: - // Add line to list - + lines.add(line); } - reader.close(); - return lines; } - -} \ No newline at end of file +}