1. 程式人生 > >Java練習之使用Map集合新增學生資訊

Java練習之使用Map集合新增學生資訊

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();
	}

}