package dev; import dev.model.Student; import dev.service.StudentManager; import dev.thread.StudentLoader; import dev.utils.FileManager; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) throws Exception { Scanner scanner = new Scanner(System.in); StudentManager manager = new StudentManager(); while (true) { System.out.println(""" 1.Load students 2.Search student 3.Remove student 4.Print students 5.Exit """); int choice = scanner.nextInt(); switch (choice) { case 1 -> { List data = FileManager.loadStudents("students.txt"); int size = data.size(); int part = (int)Math.ceil(size / 3.0); List part1 = data.subList( 0, Math.min(part,size) ); List part2 = data.subList( Math.min(part,size), Math.min(part*2,size) ); List part3 = data.subList( Math.min(part*2,size), size ); StudentLoader t1 = new StudentLoader(part1); StudentLoader t2 = new StudentLoader(part2); StudentLoader t3 = new StudentLoader(part3); t1.start(); t2.start(); t3.start(); t1.join(); t2.join(); t3.join(); ArrayList finalList = new ArrayList<>(); finalList.addAll(t1.getStudents()); finalList.addAll(t2.getStudents()); finalList.addAll(t3.getStudents()); manager.addStudents(finalList); System.out.println( "Students loaded: " + finalList.size() ); } case 2 -> { System.out.print("ID: "); int id = scanner.nextInt(); Student student = manager.searchStudent(id); if(student != null){ System.out.println("Found:"); System.out.println(student); } else{ System.out.println("Student not found."); } } case 3 -> { System.out.print("ID: "); int id = scanner.nextInt(); System.out.println( manager.removeStudent(id) ); } case 4 -> { manager.printStudents(); } case 5 -> { return; } } } } }