This commit is contained in:
Arefe Talebi
2026-07-16 17:20:32 +03:30
parent 83746b88f6
commit 3713f08085
12 changed files with 122 additions and 86 deletions
+10
View File
@@ -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/
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="WS-07-Multithreading-Basics-and-Hashing" />
</profile>
</annotationProcessing>
</component>
</project>
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://mirror-maven.runflare.com/maven2" />
</remote-repository>
</component>
</project>
+12
View File
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="23" project-jdk-type="JavaSDK" />
</project>
Generated
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
+18 -12
View File
@@ -37,27 +37,33 @@ public class Main {
// Split data into 3 parts // Split data into 3 parts
List<String> part1 = null; int size = data.size();
int chunk = (size + 2) / 3;
List<String> part2 = null; List<String> part1 = data.subList(0, Math.min(chunk, size));
List<String> part3 = null; List<String> part2 = data.subList(Math.min(chunk, size), Math.min(2 * chunk, size));
List<String> part3 = data.subList(Math.min(2 * chunk, size), size);
// TODO: // TODO:
StudentLoader t1 = null; StudentLoader t1 = new StudentLoader(part1);
StudentLoader t2 = new StudentLoader(part2);
StudentLoader t2 = null; StudentLoader t3 = new StudentLoader(part3);
StudentLoader t3 = null;
// TODO: // TODO:
t1.start();
t2.start();
t3.start();
// start() t1.join();
t2.join();
t3.join();
// join() manager.addStudents(t1.getStudents());
manager.addStudents(t2.getStudents());
// merge results manager.addStudents(t3.getStudents());
} }
+4 -2
View File
@@ -47,7 +47,7 @@ public class Student {
// Example: // Example:
// return id % 97; // return id % 97;
return 0; return id % 97;
} }
@Override @Override
@@ -64,7 +64,9 @@ public class Student {
// Step 3: // Step 3:
// Compare IDs // Compare IDs
return false; if (obj == null) return false;
Student other = (Student) obj;
return this.id == other.id;
} }
@Override @Override
@@ -18,6 +18,8 @@ public class StudentManager {
// Hint: // Hint:
// addAll() // addAll()
students.addAll(newStudents);
} }
public Student searchStudent(int id) { public Student searchStudent(int id) {
@@ -28,6 +30,12 @@ public class StudentManager {
// Compare IDs // Compare IDs
for (Student student : students) {
if (student.getId() == id) {
return student;
}
}
return null; return null;
} }
@@ -39,6 +47,13 @@ public class StudentManager {
// Remove student // Remove student
for (Student student : students) {
if (student.getId() == id) {
students.remove(student);
return true;
}
}
return false; return false;
} }
+10 -6
View File
@@ -27,26 +27,30 @@ public class StudentLoader extends Thread {
// TODO: // TODO:
/*
Example line:
1001,Aryan,Computer Science,3.7
*/
for (String line : lines) { for (String line : lines) {
// TODO: // TODO:
// split line // split line
String[] parts = line.split(",");
// TODO: // TODO:
// read values // read values
int id = Integer.parseInt(parts[0]);
String name = parts[1];
String major = parts[2];
double gpa = Double.parseDouble(parts[3]);
// TODO: // TODO:
// create Student // create Student
Student student = new Student(id, name, major, gpa);
// TODO: // TODO:
// add to students list // add to students list
students.add(student);
} }
} }
+1 -5
View File
@@ -19,14 +19,10 @@ public class FileManager {
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
// TODO: // TODO:
// Add line to list // Add line to list
lines.add(line);
} }
reader.close(); reader.close();
return lines; return lines;
} }
} }
+1 -56
View File
@@ -1,60 +1,5 @@
1001,Dimitri,Computer Science,3.7 1001,Ali,Computer Science,3.7
1002,Sara,Physics,3.9 1002,Sara,Physics,3.9
1003,John,Mathematics,3.5 1003,John,Mathematics,3.5
1004,Alice,Chemistry,3.2 1004,Alice,Chemistry,3.2
1005,David,Computer Science,3.8 1005,David,Computer Science,3.8
1006,Emma,Biology,3.6
1007,Tom,Physics,3.1
1008,Lina,Mathematics,4.0
1009,Alex,Computer Science,3.4
1010,Sophia,Chemistry,3.8
1011,Daniel,Physics,3.2
1012,Mary,Biology,3.9
1013,Kevin,Computer Science,3.5
1014,Nina,Mathematics,3.7
1015,Jack,Chemistry,3.0
1016,Olivia,Computer Science,3.9
1017,Michael,Physics,3.3
1018,Ethan,Mathematics,3.8
1019,Grace,Biology,3.4
1020,Lucas,Chemistry,3.6
1021,Emily,Computer Science,4.0
1022,Henry,Physics,3.5
1023,Amelia,Mathematics,3.9
1024,Benjamin,Biology,3.1
1025,Charlotte,Chemistry,3.7
1026,James,Computer Science,3.2
1027,Abigail,Physics,3.8
1028,William,Mathematics,3.4
1029,Ella,Biology,3.9
1030,Noah,Chemistry,3.3
1031,Isabella,Computer Science,3.8
1032,Logan,Physics,3.0
1033,Mia,Mathematics,4.0
1034,Mason,Biology,3.5
1035,Ava,Chemistry,3.6
1036,Elijah,Computer Science,3.7
1037,Harper,Physics,3.4
1038,Jacob,Mathematics,3.2
1039,Evelyn,Biology,3.8
1040,Alexander,Chemistry,3.1
1041,Scarlett,Computer Science,3.9
1042,Sebastian,Physics,3.6
1043,Aria,Mathematics,3.5
1044,Matthew,Biology,3.7
1045,Chloe,Chemistry,4.0
1046,Samuel,Computer Science,3.3
1047,Victoria,Physics,3.8
1048,Joseph,Mathematics,3.1
1049,Lily,Biology,3.9
1050,David,Chemistry,3.4
1051,Hannah,Computer Science,3.8
1052,Carter,Physics,3.5
1053,Zoey,Mathematics,3.7
1054,Owen,Biology,3.2
1055,Penelope,Chemistry,3.9
1056,Wyatt,Computer Science,4.0
1057,Riley,Physics,3.3
1058,Luke,Mathematics,3.6
1059,Layla,Biology,3.4
1060,Gabriel,Chemistry,3.8