Java程序:避免學生ID重復,優化代碼執行
本文探討如何在Java程序中,有效處理學生信息錄入時ID重復的問題,避免重復輸入其他信息。
問題: 現有代碼在檢測到學生ID重復后,仍然繼續執行后續的姓名、年齡、地址錄入流程。
改進方案: 通過改進數據結構和代碼邏輯,在檢測到ID重復時立即停止后續操作。
解決方案:
立即學習“Java免費學習筆記(深入)”;
采用HashMap存儲學生信息,以學生ID作為鍵,實現高效的ID重復性檢查。 修改后的代碼如下:
import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class StudentManager { private static Map<String, Student> studentMap = new HashMap<>(); public static int addStudent() { Scanner scanner = new Scanner(System.in); System.out.print("請輸入學生ID:"); String studentId = scanner.next(); if (studentMap.containsKey(studentId)) { System.out.println("學生ID已存在,添加失敗!"); return 0; // ID重復,立即返回 } Student student = new Student(); student.setId(studentId); System.out.print("請輸入學生姓名:"); student.setName(scanner.next()); System.out.print("請輸入學生年齡:"); student.setAge(scanner.nextInt()); System.out.print("請輸入學生住址:"); student.setAddress(scanner.next()); studentMap.put(studentId, student); System.out.println("學生信息添加成功!"); return 1; } public static class Student { private String id; private String name; private int age; private String address; //getter and setter methods public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } } public static void main(String[] args) { addStudent(); } }
代碼解釋:
-
使用HashMap: studentMap 使用HashMap存儲學生信息,鍵為學生ID,值為Student對象。HashMap 提供了containsKey() 方法,可以快速高效地檢查ID是否存在。
-
提前檢查ID: 在錄入其他信息之前,立即使用studentMap.containsKey(studentId) 檢查ID是否已存在。如果存在,則打印錯誤信息并立即返回,停止后續操作。
-
靜態變量: studentMap 聲明為靜態變量,保證在多次調用addStudent() 方法時,數據可以被保留。
通過這些改進,程序能夠在檢測到ID重復時立即停止,避免了不必要的輸入操作,提高了代碼效率和用戶體驗。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END