Java程序:避免學(xué)生ID重復(fù),優(yōu)化代碼執(zhí)行
本文探討如何在Java程序中,有效處理學(xué)生信息錄入時(shí)ID重復(fù)的問題,避免重復(fù)輸入其他信息。
問題: 現(xiàn)有代碼在檢測到學(xué)生ID重復(fù)后,仍然繼續(xù)執(zhí)行后續(xù)的姓名、年齡、地址錄入流程。
改進(jìn)方案: 通過改進(jìn)數(shù)據(jù)結(jié)構(gòu)和代碼邏輯,在檢測到ID重復(fù)時(shí)立即停止后續(xù)操作。
解決方案:
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
采用HashMap存儲(chǔ)學(xué)生信息,以學(xué)生ID作為鍵,實(shí)現(xiàn)高效的ID重復(fù)性檢查。 修改后的代碼如下:
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("請輸入學(xué)生ID:"); String studentId = scanner.next(); if (studentMap.containsKey(studentId)) { System.out.println("學(xué)生ID已存在,添加失敗!"); return 0; // ID重復(fù),立即返回 } Student student = new Student(); student.setId(studentId); System.out.print("請輸入學(xué)生姓名:"); student.setName(scanner.next()); System.out.print("請輸入學(xué)生年齡:"); student.setAge(scanner.nextInt()); System.out.print("請輸入學(xué)生住址:"); student.setAddress(scanner.next()); studentMap.put(studentId, student); System.out.println("學(xué)生信息添加成功!"); 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存儲(chǔ)學(xué)生信息,鍵為學(xué)生ID,值為Student對象。HashMap 提供了containsKey() 方法,可以快速高效地檢查ID是否存在。
-
提前檢查ID: 在錄入其他信息之前,立即使用studentMap.containsKey(studentId) 檢查ID是否已存在。如果存在,則打印錯(cuò)誤信息并立即返回,停止后續(xù)操作。
-
靜態(tài)變量: studentMap 聲明為靜態(tài)變量,保證在多次調(diào)用addStudent() 方法時(shí),數(shù)據(jù)可以被保留。
通過這些改進(jìn),程序能夠在檢測到ID重復(fù)時(shí)立即停止,避免了不必要的輸入操作,提高了代碼效率和用戶體驗(yàn)。