Mục Lục
Mục Lục
Exception & Collection Video Tìm hiểu exception + debug + package - lập trình Java Nâng Cao Video Tìm hiểu collections, Sets, Maps và Generic - lập trình java nâng cao Chương trình quản lý sinh viên bằng HashMap - Java Advanced Bài tập ôn luyện String, StringBuilder, StringBuffer - Java Advanced Bài tập Exception trong Java File Video Hướng dẫn đọc ghi file FileInputStream, FileOutputStream, ObjectInputStream trong java - lập trình java nâng cao File - Quản lý thông tin sinh viên Quản lý thông tin sinh & lưu object file - Java nâng cao Video Quản lý thông tin sinh & lưu object file - Java nâng cao Video Bài tập quản lý bán vé máy bay - java nâng cao Thread Video Tìm hiểu Thread trong Java - Phần 2 - lập trình java nâng cao Thread thực hiện in ngẫu nhiên các số nguyên và ký tự Video Thread thực hiện in ngẫu nhiên các số nguyên và ký tự - Phần 1 Video Thread thực hiện in ngẫu nhiên các số nguyên và ký tự & Đông bộ thread + wait notify + synchronized + Java nâng cao - Phần 2 Sử dụng MultiThreading sinh ký tự a-zA-Z trong java CSDL Video Kết nối CSDL bằng java swing phần 1 - lập trình java nâng cao Design Pattern & Đa Ngôn Ngữ Video Hướng dẫn tìm hiểu đệ quy qua bài Fibonaci - Recursion Fibonaci - Java Phân chia mảng số nguyên thành 2 phần + chắc + lẻ Video Phân chia mảng số nguyên thành 2 phần + chắc + lẻ Video Design Pattern lập trình java nâng cao - lập trình java nâng cao Bài tập - Chương trình quản lý sách - lập trình đa ngôn ngữ - Khoá học lập trình Java nâng cao XML & JSON & CSDL Video Tìm hiểu XML & Hướng dẫn phân tích tài liệu XML quản lý lớp học bằng Java XML: Viết chương trình phân tích tài liệu XML thông tin cá nhân bằng Java Video - Hướng dẫn tạo dự án quản lý sinh viên + import + export XML File XML: Java Swing|FX Quản lý thông tin cá nhân Profile bằng java - import + export XML File Video Json/Gson & Java - Phân tích dữ liệu lớp học JSON bằng Java -Ứng dụng quản lý lớp học Java nâng cao Video gson trong Java - Vi dụ json trong java - Bài tập quản lý sản phẩm + json trong Java JSON: Tạo JSON file & đọc nội dung JSON file thông tin cá nhân bằng Java Bài tập - Nhập thông tin sinh viên từ JSON vào CSDL - Lập trình Java nâng cao. Mini Project - Phân tích dự án + Phát triển phần mềm ATM Chương trình quản lý sinh viên Java + Import/Export JSON + File - Lập Trình Java Video C1 > Chương trình quản lý sinh viên Java + Import/Export JSON + File - Lập Trình Java Video C2 > Chương trình quản lý sinh viên Java + Import/Export JSON + File - Lập Trình Java Bài tập - Viết chương trình quản lý tiêm chủng Vacxin COVID-19 - Lập trình Java nâng cao. Bài tập - Viết tools hỗ trợ đọc logs bằng Java Bài tập - Viết chương trình quản lý sinh viên XML - JSON - Lập trình Java Quản lý sinh viên + XML + JSON + MySQL bằng Java Video Quản lý sinh viên + XML + JSON + MySQL bằng Java Ôn Tập Tổng Quát & Exmination Bài tập luyện thi Java2 Bài thi Java 2
Java Advanced

[Video] Chương trình quản lý sinh viên bằng HashMap - Java Advanced

Viết chương trình quản lý sinh viên sử dụng HashMap trong Java (Java Advanced). Cụ thể:

  1. Tạo lớp Student với các thuộc tính: rollNo, name, sex, age, email, address. Cần có constructor không đối sốconstructor đầy đủ tham số.

  2. Tạo một HashMap<String, Student> để quản lý danh sách sinh viên, dùng rollNo làm key.

  3. Xây dựng menu chương trình với các chức năng:

    • Nhập N sinh viên

    • In thông tin tất cả sinh viên

    • Tìm kiếm sinh viên theo rollNo và hiển thị thông tin nếu có

Nội dung giải thích & code mẫu

1. Lớp Student – định nghĩa đối tượng sinh viên

public class Student { private String rollNo; private String name; private String sex; private int age; private String email; private String address; // Constructor không đối số public Student() { } // Constructor đầy đủ tham số public Student(String rollNo, String name, String sex, int age, String email, String address) { this.rollNo = rollNo; this.name = name; this.sex = sex; this.age = age; this.email = email; this.address = address; } // Getter / Setter public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } // Phương thức nhập từ console public void input() { Scanner scanner = new Scanner(System.in); System.out.print("Nhập rollNo: "); this.rollNo = scanner.nextLine(); System.out.print("Nhập tên: "); this.name = scanner.nextLine(); System.out.print("Nhập giới tính: "); this.sex = scanner.nextLine(); System.out.print("Nhập tuổi: "); this.age = Integer.parseInt(scanner.nextLine()); System.out.print("Nhập email: "); this.email = scanner.nextLine(); System.out.print("Nhập địa chỉ: "); this.address = scanner.nextLine(); } // Phương thức hiển thị thông tin student public void display() { System.out.println("RollNo: " + rollNo + ", Name: " + name + ", Sex: " + sex + ", Age: " + age + ", Email: " + email + ", Address: " + address); } @Override public String toString() { return "Student{" + "rollNo='" + rollNo + '\'' + ", name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + ", email='" + email + '\'' + ", address='" + address + '\'' + '}'; } }

Giải thích chi tiết:

  • Constructor không tham số để khởi tạo đối tượng rồi gán sau khi nhập thông tin.

  • Constructor đầy đủ để khởi tạo nhanh nếu có sẵn dữ liệu.

  • input() dùng Scanner để người dùng nhập từ console.

  • display() để in thông tin ra màn hình.

  • toString() để dễ in hoặc debug.

2. Sử dụng HashMap<String, Student> để quản lý sinh viên

Bạn sử dụng HashMap theo cú pháp:

Map<String, Student> studentMap = new HashMap<>();

Ở đây:

  • Key là rollNo (String) – đảm bảo mỗi sinh viên có mã số duy nhất.

  • Value là đối tượng Student chứa các thông tin chi tiết.

Ưu điểm dùng HashMap:

  • Truy xuất (lookup) theo rollNo rất nhanh (O(1) trung bình).

  • Dễ thêm, sửa, xóa sinh viên.

  • Không cần duyệt toàn bộ để tìm, nếu biết rollNo.

3. Xây dựng menu chương trình

Phần menu giúp người dùng thao tác dễ dàng với chương trình quản lý sinh viên. Dưới đây là code mẫu cho Main:

import java.util.*; public class Main { public static void main(String[] args) { Map<String, Student> studentMap = new HashMap<>(); Scanner scanner = new Scanner(System.in); int choice; do { showMenu(); System.out.print("Chọn: "); choice = Integer.parseInt(scanner.nextLine()); switch (choice) { case 1: System.out.print("Nhập số lượng sinh viên N: "); int N = Integer.parseInt(scanner.nextLine()); for (int i = 0; i < N; i++) { Student s = new Student(); s.input(); studentMap.put(s.getRollNo(), s); } break; case 2: System.out.println("=== Danh sách sinh viên ==="); for (Student s : studentMap.values()) { s.display(); } break; case 3: System.out.print("Nhập RollNo cần tìm: "); String key = scanner.nextLine(); Student found = studentMap.get(key); if (found != null) { found.display(); } else { System.out.println("Không tìm thấy sinh viên với RollNo: " + key); } break; case 4: System.out.println("Thoát chương trình."); break; default: System.out.println("Lựa chọn không hợp lệ, hãy chọn lại."); } } while (choice != 4); scanner.close(); } private static void showMenu() { System.out.println("=== Quản lý sinh viên ==="); System.out.println("1. Nhập N sinh viên"); System.out.println("2. In thông tin sinh viên"); System.out.println("3. Tìm kiếm sinh viên theo RollNo"); System.out.println("4. Thoát"); } }

Giải thích phần menu:

  • case 1: Nhập N sinh viên, gọi input() từng đối tượng và lưu vào studentMap với rollNo làm key.

  • case 2: Duyệt studentMap.values() để in ra thông tin tất cả sinh viên.

  • case 3: Dùng studentMap.get(key) để tìm nhanh sinh viên theo mã (rollNo).

  • case 4: Thoát chương trình.

  • Xử lý default: nếu người dùng nhập sai chức năng, nhắc chọn lại.



Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó

×