mapList.put(input,new Course(input,n1)); 為何無法賦值
int i = 0;
??while(i<3){
???System.out.println("請輸入ID");
???Integer input = Input.nextInt();?? //接受輸入內容? 導入過了
???Course m1 = mapList.get(Input);
???//System.out.println(m1);????????????? //這里m1為null
???if(m1==null){
????System.out.println("請輸入姓名");
????String n1 = Input.next();
????mapList.put(input,new Course(input,n1));
????//System.out.println(m1);???????? //這里m1依舊為null
??i++;
???}
???else{
????System.out.println("ID被占用");
????continue;
???}
程序可以執行。。。問題是:直到循環結束后m1才有值? 導致else沒法執行。。怎么破
2016-02-22
1.請輸入ID 你為什么用 Integer 接受 為什么不用 String s = input.next(); ?你的問題 你沒有 給全部代碼 我也不太清晰 初步認為 是mapList.get()是接受String 類型 ,你傳進去的是integer類型?
2.還有下面mapList.put()無法賦值 這里 你想要創建 Course 實例 : Course cur = new Course(Input , n1);
在 把 ID 和 Course 放入 mapList里面 ?ID 為key , Course 為value 。 mapList.put(ID ,Course);
這是 兩層包裝 。Course 類 里面 有屬性 ID 和 name . ?Map中包含 key,value 為 ID ,Course. ??
第一個 我只是感覺 你 哪里 出現問題 ,不太準確 。 第二個 是map包含 東西 , 因為ID 的原因可能 有些不清晰 你可以去紙上面 畫下圖像 。誰包含誰 就 可以了?