Java練習之使用Map集合新增學生資訊
阿新 • • 發佈:2018-12-04
public class MapTest { public Map<String,Student> students; public MapTest() { super(); this.students = new HashMap<String,Student> (); } /* * 測試新增:先判斷學生ID是否被佔用,如果未被佔用,則輸入姓名,並建立新的學生物件,最後新增到students中 */ public void testPut() { Scanner console = new Scanner(System.in); int i = 0; while(i < 3) { System.out.println("請輸入學生ID:"); String ID = console.next(); //判斷從鍵盤輸入的ID是否被佔用,獲取該ID值所對應的value值 Student stu = students.get(ID); //如果value值為空,建立新的學生物件並新增到students中 if(stu == null) { //提示輸入學生姓名: System.out.println("請輸入學生姓名:"); String name = console.next(); //建立新的學生物件,將ID-name對映傳入 Student newStu = new Student(ID,name); //在Map中新增以該學生ID為鍵的對映 students.put(ID, newStu); System.out.println("已成功新增學生:"+students.get(ID).name); i++;//一共迴圈三次,總共新增三個學生資訊 } else { System.out.println("您所新增的學生已存在,請重新輸入"); continue; } } } /* * 測試Map中的remove方法 * */ public void testRemove() { //從鍵盤輸入要刪除的學生ID System.out.println("請輸入要刪除的學生ID"); while(true) { Scanner console = new Scanner(System.in); String id = console.next(); Student stu = students.get(id); if(stu == null) { System.out.println("您要刪除的學號資訊不存在,請重新輸入要刪除的學生ID"); } else { students.remove(id); System.out.println("您已經成功刪除學生"+stu.name); break; } } } /* * 測試Map中的keySet方法 */ public void testKeySet() { Set<String> ks = students.keySet(); Iterator<String> it = ks.iterator(); while(it.hasNext()) { String str = it.next(); Student stu = students.get(str); System.out.println(stu.id+","+stu.name); } } public static void main(String[] args) { MapTest mt = new MapTest(); mt.testPut(); mt.testKeySet(); mt.testRemove(); mt.testKeySet(); } }
根據ID修改學生資訊:
public class MapTest { public Map<String,Student> students; public MapTest() { super(); this.students = new HashMap<String,Student> (); } /* * 測試新增:先判斷學生ID是否被佔用,如果未被佔用,則輸入姓名,並建立新的學生物件,最後新增到students中 */ public void testPut() { Scanner console = new Scanner(System.in); int i = 0; while(i < 3) { System.out.println("請輸入學生ID:"); String ID = console.next(); //判斷從鍵盤輸入的ID是否被佔用,獲取該ID值所對應的value值 Student stu = students.get(ID); //如果value值為空,建立新的學生物件並新增到students中 if(stu == null) { //提示輸入學生姓名: System.out.println("請輸入學生姓名:"); String name = console.next(); //建立新的學生物件,將ID-name對映傳入 Student newStu = new Student(ID,name); //在Map中新增以該學生ID為鍵的對映 students.put(ID, newStu); System.out.println("已成功新增學生:"+students.get(ID).name); i++;//一共迴圈三次,總共新增三個學生資訊 } else { System.out.println("您所新增的學生已存在,請重新輸入"); continue; } } } /* * 測試Map中的remove方法 * */ public void testRemove() { //從鍵盤輸入要刪除的學生ID System.out.println("請輸入要刪除的學生ID"); while(true) { Scanner console = new Scanner(System.in); String id = console.next(); Student stu = students.get(id); if(stu == null) { System.out.println("您要刪除的學號資訊不存在,請重新輸入要刪除的學生ID"); } else { students.remove(id); System.out.println("您已經成功刪除學生"+stu.name); break; } } } /* * 測試Map中的修改方法 */ public void testModify() { //提示使用者要修改的學生資訊 System.out.println("請輸入要修改的學生ID:"); while(true) { Scanner console = new Scanner(System.in); String id = console.next(); Student stu = students.get(id); if(stu == null) { System.out.println("您要修改的學生資訊不存在,請重新輸入"); continue; } System.out.println("當前學生ID所對應的學生姓名為:"+stu.name); System.out.println("請輸入要修改的學生姓名:"); String name = console.next(); Student newStu = new Student(id,name); students.put(id, newStu); System.out.println("修改成功"); break; } } /* * 測試Map中的keySet方法 */ public void testKeySet() { Set<String> ks = students.keySet(); Iterator<String> it = ks.iterator(); while(it.hasNext()) { String str = it.next(); Student stu = students.get(str); System.out.println(stu.id+","+stu.name); } } public static void main(String[] args) { MapTest mt = new MapTest(); mt.testPut(); mt.testKeySet(); // mt.testRemove(); mt.testModify(); mt.testKeySet(); } }