第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

求大佬看一下,我是照著老師的代碼寫的,怎么拋異常了?我該怎么改?

package?imoocCollection;

import?java.util.HashMap;
import?java.util.Map;
import?java.util.Map.Entry;
import?java.util.Scanner;
import?java.util.Set;

public?class?MapTest?{
	
	//建一個(gè)map類型的屬性,用來承裝student對(duì)象的
	public?Map<String,?Student>?students;
	
	//在構(gòu)造方法上給students初始化
	public?MapTest()?{
		this.students?=?new?HashMap<String,?Student>();
	}
	
	//測(cè)試添加方法:輸入學(xué)生的ID,判斷是否被占用
	//若未被占用,提示輸入學(xué)生姓名,創(chuàng)建新的學(xué)生對(duì)象,并且添加到students中
	//若被占用,打印輸出,該ID已被占用
	public?void?testPut()?{
		//創(chuàng)建一個(gè)Scanner對(duì)象
		Scanner?sc?=?new?Scanner(System.in);
		for(int?i=0;?i<3;?i++)?{
			?System.out.println("請(qǐng)輸入學(xué)生ID:");
			?String?id?=?sc.next();
			?//判斷該ID是否被占用
			?Student?s?=?students.get(id);
			?if(s?==?null)?{
				?//提示輸入學(xué)生姓名
				?System.out.println("請(qǐng)輸入學(xué)生姓名:");
				?String?name?=?sc.next();
				?//創(chuàng)建新的學(xué)生對(duì)象
				?Student?st?=?new?Student(id,?name);
				?//通過調(diào)用students的put方法添加學(xué)生到hash?map里
				?students.put(id,?st);
				?System.out.println("成功添加學(xué)生:"?+?students.get(id).name);
			?}
			?else?{
				?System.out.println("該學(xué)生ID已被占用");
				?continue;
			?}
		}
	}
	
	//測(cè)試刪除Map中的映射
	public?void?testRemove()?{
		//獲取從鍵盤輸入的待刪除的學(xué)生ID
		Scanner?sc?=?new?Scanner(System.in);
		while(true)?{
			//提示輸入待刪除的學(xué)生ID
			System.out.println("請(qǐng)輸入要?jiǎng)h除的學(xué)生ID:");
			String?id?=?sc.next();
			System.out.println("接收到要?jiǎng)h除的學(xué)生ID:"?+?id);
			//判斷id是否有對(duì)應(yīng)的學(xué)生對(duì)象
			System.out.println(students.get(id).name);
			if(students.get(id)?!=?null)?{
				System.out.println("進(jìn)入到if條件句里!");
				students.remove(id);
				System.out.println("已經(jīng)remove掉ID了");
			}
			else?{
				System.out.println("該ID不存在!");
				continue;
			}
			System.out.println("成功刪除學(xué)生:"?+?students.get(id).name);
			break;
		}
	}
	
	//通過entrySet方法來遍歷Map
	public?void?testEntrySet()?{
		//通過entrySet方法,返回Map中所有的鍵值對(duì)
		Set<Entry<String,?Student>>?entrySet?=?students.entrySet();
		for(Entry<String,?Student>?entry?:?entrySet)?{
			System.out.println("取得鍵:"?+?entry.getKey());
			System.out.println("對(duì)應(yīng)的值為:"?+?entry.getValue().name);
		}
	}
	
	//測(cè)試map的keySet()方法
	public?void?testKeySet()?{
		//通過keySet方法返回Map中所有鍵的Set集合
		Set<String>?keySet?=?students.keySet();
		//取得set的容量
		System.out.println("總共有:"?+?keySet.size()?+?"個(gè)學(xué)生!");
		
		//遍歷keySet,取得每一個(gè)鍵,在調(diào)用map的get方法取得每個(gè)鍵對(duì)應(yīng)的value
		for(String?s?:?keySet)?{
			Student?st?=?students.get(s);
			if(st?!=?null)?{
				System.out.println("學(xué)生:"?+?st.name);
			}
		}
		
	}
	

	public?static?void?main(String[]?args)?{
		//?TODO?Auto-generated?method?stub
		MapTest?mt?=?new?MapTest();
		mt.testPut();
		mt.testKeySet();
		mt.testRemove();
		mt.testEntrySet();
	}

}


請(qǐng)輸入學(xué)生ID:

1

請(qǐng)輸入學(xué)生姓名:

Tom

成功添加學(xué)生:Tom

請(qǐng)輸入學(xué)生ID:

2

請(qǐng)輸入學(xué)生姓名:

Jack

成功添加學(xué)生:Jack

請(qǐng)輸入學(xué)生ID:

3

請(qǐng)輸入學(xué)生姓名:

XiaoMing

成功添加學(xué)生:XiaoMing

總共有:3個(gè)學(xué)生!

學(xué)生:Tom

學(xué)生:Jack

學(xué)生:XiaoMing

請(qǐng)輸入要?jiǎng)h除的學(xué)生ID:

3

接收到要?jiǎng)h除的學(xué)生ID:3

Exception in thread "main" XiaoMing

進(jìn)入到if條件句里!

已經(jīng)remove掉ID了

java.lang.NullPointerException

at imoocCollection.MapTest.testRemove(MapTest.java:67)

at imoocCollection.MapTest.main(MapTest.java:105)


正在回答

2 回答

如果我猜得沒錯(cuò)的話,是System.out.println("成功刪除學(xué)生:"?+?students.get(id).name);這句話錯(cuò)了,已經(jīng)被你刪了,結(jié)果你又get他的name不是獲取不到東西?


0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

Sugn

我是踩的,沒去驗(yàn)證.
2018-01-10 回復(fù) 有任何疑惑可以回復(fù)我~
#2

qq_OK_21 提問者 回復(fù) Sugn

" + students.get(id).name); command掉就不報(bào)錯(cuò)了,感謝!
2018-01-11 回復(fù) 有任何疑惑可以回復(fù)我~

("成功刪除學(xué)生:"?+?students.get(id).name);會(huì)報(bào)空指針異常?。?!之前已經(jīng)remove了的!!

? ?這樣就可以了:

? Student stu=students.get(id);

? ?students.remove(id);

? ?System.out.println("成功刪除學(xué)生:"+stu.name); ?


1 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

求大佬看一下,我是照著老師的代碼寫的,怎么拋異常了?我該怎么改?

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)