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..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..c53f863 100644
--- a/src/main/java/dev/Main.java
+++ b/src/main/java/dev/Main.java
@@ -37,28 +37,40 @@ public class Main {
// Split data into 3 parts
- List part1 = null;
+ int size = data.size();
- List part2 = null;
-
- List part3 = null;
+ List part1 = data.subList(0, size / 3);
+ List part2 = data.subList(size / 3, 2 * size / 3);
+ List part3 = data.subList(2 * size / 3, 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:
// start()
+ t1.start();
+ t2.start();
+ t3.start();
+
// join()
+ t1.join();
+ t2.join();
+ t3.join();
+
// merge results
+ manager.addStudents(t1.getStudents());
+ manager.addStudents(t2.getStudents());
+ manager.addStudents(t3.getStudents());
+
}
case 2 -> {
@@ -96,4 +108,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..f72954e 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
@@ -58,13 +58,19 @@ public class Student {
// Step 1:
// Check null
+ if (obj == null) {
+ return false;
+ }
+
// Step 2:
// Convert obj to Student
+ Student student = (Student) obj;
+
// Step 3:
// Compare IDs
- return false;
+ return this.id == student.id;
}
@Override
diff --git a/src/main/java/dev/service/StudentManager.java b/src/main/java/dev/service/StudentManager.java
index 403a1c6..03787df 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
+ Student student = searchStudent(id);
+
+ if (student != null) {
+ 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..2630e59 100644
--- a/src/main/java/dev/thread/StudentLoader.java
+++ b/src/main/java/dev/thread/StudentLoader.java
@@ -1,7 +1,5 @@
package dev.thread;
-
-
import dev.model.Student;
import java.util.ArrayList;
@@ -38,15 +36,26 @@ public class StudentLoader extends Thread {
// 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 +65,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..bea11a4 100644
--- a/src/main/java/dev/utils/FileManager.java
+++ b/src/main/java/dev/utils/FileManager.java
@@ -22,6 +22,8 @@ public class FileManager {
// Add line to list
+ lines.add(line);
+
}
reader.close();
@@ -29,4 +31,4 @@ public class FileManager {
return lines;
}
-}
\ No newline at end of file
+}
diff --git a/src/main/java/lecture/multithreading/timeout/Main.java b/src/main/java/lecture/multithreading/timeout/Main.java
index 8258073..7e071df 100644
--- a/src/main/java/lecture/multithreading/timeout/Main.java
+++ b/src/main/java/lecture/multithreading/timeout/Main.java
@@ -1,10 +1,24 @@
package lecture.multithreading.timeout;
+import java.util.Scanner;
public class Main {
public static void main(String[] args) {
- // TODO
+
+ Scanner scanner = new Scanner(System.in);
+
+ System.out.println("you have 10 seconds: ");
+ System.out.print("enter your name: ");
+
+ MyRunnable myRunnable = new MyRunnable();
+ Thread thread = new Thread(myRunnable);
+ thread.setDaemon(true);
+ thread.start();
+
+ String name = scanner.nextLine();
+ System.out.println("hello " + name);
+
+ scanner.close();
}
}
-
diff --git a/src/main/java/lecture/multithreading/timeout/MyRunnable.java b/src/main/java/lecture/multithreading/timeout/MyRunnable.java
new file mode 100644
index 0000000..5ba28ba
--- /dev/null
+++ b/src/main/java/lecture/multithreading/timeout/MyRunnable.java
@@ -0,0 +1,22 @@
+package lecture.multithreading.timeout;
+
+public class MyRunnable implements Runnable{
+
+ @Override
+ public void run(){
+
+ for (int i = 1; i <= 10 ; i++){
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ System.out.println("thread was interrupted");
+ }
+
+ if(i == 10){
+ System.out.println("time is up");
+ System.exit(0);
+ }
+
+ }
+ }
+}
\ No newline at end of file