亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么我的打印成功添加學生為null,沒有報錯

package?com.imooc.collection;import?java.util.HashMap;import?java.util.Map;import?java.util.Scanner;import?java.util.Set;public?class?TestMap?{/*?*?用來承裝學生類型對象?*/	public?Map<String,student>?students;/*?*?在構造器初始化student屬性	?*/	public?TestMap(){		this.students=new?HashMap<String,student>();	}/*?*?測試添加:輸入學生ID判斷是否被占用?*?若未被占用,則輸入姓名,創建學生對象,并且添加到student中	?*/	public?void?testPut()?{		//創建Scanner對象,用來獲取輸入的學生信息		Scanner?inpu=new?Scanner(System.in);		int?i=0;		while(i<3)?{			System.out.println("請輸入學生ID:");			String?ID=inpu.next();			//判斷ID是否被占用			student?st=students.get(ID);			if(st==null)?{				//提示輸入學生姓名				System.out.println("請輸入學生姓名:");				String?name=inpu.next();				//創建新的學生對象				student?newStudent=new?student(ID,name);				//通過調用students的put方法,添加ID-學生映射				students.put(ID,?newStudent);				System.out.println("成功添加學生:"+students.get(ID).name);				i++;			}			else?{				System.out.println("該學生ID已被占用!");				continue;			}		}	}	/*	*?測試Map的KeySet方法	*/	public?void?testKeySet()?{		//通過KeySet方法,返回Map中的所有“鍵”的Set集合		Set<String>?keySet=students.keySet();		//取得學生的數量		System.out.println("共有:"+students.size()+"個學生");		//遍歷keySet,取得每一個鍵,在調用get方法取得每個鍵對應的value		for(String?stuId:keySet)		{			student?st=students.get(stuId);			if(st!=null)				System.out.println("學生:"+st.name);		}	}	public?static?void?main(String[]?args)?{		//?TODO?自動生成的方法存根		TestMap?tm=new?TestMap();		tm.testPut();		tm.testKeySet();	}}

http://img1.sycdn.imooc.com//5f38c2b10001e6d619201075.jpg

正在回答

2 回答

我和你一樣 也是沒有報錯 但輸出的姓名是null? 你現在解決了嘛

0 回復 有任何疑惑可以回復我~
package?com.imooc.collection;
import?java.util.HashMap;
import?java.util.Map;
import?java.util.Scanner;
import?java.util.Set;
public?class?TestMap?{
/*?
*?用來承裝學生類型對象
?*/	
?public?Map<String,student>?students;
?/*?
?*?在構造器初始化student屬性	
??*/
??	public?TestMap(){	
??		this.students=new?HashMap<String,student>();	
??		}
??		/*
??		?*?測試添加:輸入學生ID判斷是否被占用?*?若未被占用,則輸入姓名,創建學生對象,并且添加到student中
??		?*/	
??		?public?void?testPut()?
??		?{
??		//創建Scanner對象,用來獲取輸入的學生信息
??	Scanner?inpu=new?Scanner(System.in);	
??	int?i=0;
??while(i<3)?{	
??System.out.println("請輸入學生ID:");	
?String?ID=inpu.next();	
?//判斷ID是否被占用	
?student?st=students.get(ID);
?if(st==null)?{	
?//提示輸入學生姓名		
System.out.println("請輸入學生姓名:");	
String?name=inpu.next();		
//創建新的學生對象		
student?newStudent=new?student(ID,name);				
//通過調用students的put方法,添加ID-學生映射				
students.put(ID,?newStudent);				
System.out.println("成功添加學生:"+students.get(ID).name);				
i++;		
	}			
	else?{				
	System.out.println("該學生ID已被占用!");				
	continue;			
	}		
	}	
	}	
	/*	
	*?測試Map的KeySet方法	
	*/	
	public?void?testKeySet()?
	{		
	//通過KeySet方法,返回Map中的所有“鍵”的Set集合		
	Set<String>?keySet=students.keySet();		
	//取得學生的數量		
	System.out.println("共有:"+students.size()+"個學生");		
	//遍歷keySet,取得每一個鍵,在調用get方法取得每個鍵對應的value		
	for(String?stuId:keySet)		
	{			
	student?st=students.get(stuId);			
	if(st!=null)				
	System.out.println("學生:"+st.name);		
	}	
	}	
	public?static?void?main(String[]?args)?{		
	//?TODO?自動生成的方法存根		
	TestMap?tm=new?TestMap();		
	tm.testPut();		
	tm.testKeySet();	
	}
	}

沒有報錯!知怎么回事!


0 回復 有任何疑惑可以回復我~
#1

weixin_慕運維6432950

String name=inpu.next(); 把這個name換個其他就行了 System.out.println("成功添加學生:"+students.get(ID).name); 你get的是上面的name的常量但是他的類型是student所以為空
2022-01-11 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么我的打印成功添加學生為null,沒有報錯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號