課程
/后端開發(fā)
/Java
/Java入門第三季
求大神賜教,萬謝
2015-05-29
源自:Java入門第三季 5-2
正在回答
package com.imooc.collection;import java.util.HashMap;import java.util.Map;import java.util.Map.Entry;import java.util.Scanner;import java.util.Set;public class MapTest{?? ?//用來承裝學(xué)生類型對象?? ?public Map<String,Student> students;?? ??? ?//在構(gòu)造器中初始化students屬性?? ?public MapTest(){?? ??? ?this.students=new HashMap<String,Student>();?? ?}?? ??? ?//測試添加:輸入學(xué)生ID,判斷是否被占用?? ?//若未被占用,則輸入姓名,創(chuàng)建新學(xué)生對象,?? ?//并且添加到students中,?? ??? ?public void testPut(){?? ??? ?//創(chuàng)建一個Scanner對象,用來獲取輸入的學(xué)生ID和姓名?? ??? ?Scanner console=new Scanner(System.in);?? ??? ?int i=0;?? ??? ?while(i<3){?? ??? ??? ?System.out.println("請輸入學(xué)生ID:");?? ??? ??? ?String ID=console.next();?? ??? ??? ?//判斷該ID是否被占用?? ??? ??? ?Student st=students.get(ID);?? ??? ??? ?if(st==null){?? ??? ??? ??? ?//提示輸入學(xué)生姓名?? ??? ??? ??? ?System.out.println("請輸入學(xué)生姓名:");?? ??? ??? ??? ?String name=console.next();?? ??? ??? ??? ?//創(chuàng)建新的學(xué)生對象?? ??? ??? ??? ?Student newStudent=new Student(ID,name);?? ??? ??? ??? ?//通過調(diào)用students的new方法,添加ID—學(xué)生映射?? ??? ??? ??? ?students.put(ID, newStudent);?? ??? ??? ??? ?System.out.println("成功添加學(xué)生:"+students.get(ID).name);?? ??? ??? ??? ?i++;?? ??? ??? ?}else{?? ??? ??? ??? ?System.out.println("該學(xué)生ID已被占用!");?? ??? ??? ??? ?continue;?? ??? ??? ?}?? ??? ?}?? ?}?? ??? ?//測試Map的keySet方法?? ?public void testKeySet(){?? ??? ?//通過keySet方法,返回Map中的所有“鍵”的Set集合?? ??? ?Set<String> keySet=students.keySet();?? ??? ?//取得students的容量?? ??? ?System.out.println("總共有:"+students.size()+"個學(xué)生!");?? ??? ?//遍歷keySet,取得每一個鍵,再調(diào)用get方法取得每個鍵對應(yīng)的value?? ??? ?for (String stuId: keySet) {?? ??? ??? ?Student st=students.get(stuId);?? ??? ??? ?if(st!=null)?? ??? ??? ??? ?System.out.println("學(xué)生:"+st.name);?? ??? ?}?? ??? ?}?? ?//測試刪除Map中的映射?? ?public void testRemove(){?? ??? ?//獲取從鍵盤輸入的待刪除學(xué)生ID字符串?? ??? ??? ?Scanner console=new Scanner(System.in);?? ??? ??? ?while(true){?? ??? ??? ??? ?//提示輸入待刪除的學(xué)生的ID?? ??? ??? ??? ?System.out.println("請輸入要刪除的學(xué)生ID!");?? ??? ??? ??? ?String ID=console.next();?? ??? ??? ??? ?//判斷該ID 是否有對應(yīng)的學(xué)生對象?? ??? ??? ??? ?Student st=students.get(ID);?? ??? ??? ??? ?if(st==null){?? ??? ??? ??? ??? ?//提示輸入的ID并不存在?? ??? ??? ??? ??? ?System.out.println("該ID不存在!");?? ??? ??? ??? ??? ?continue;?? ??? ??? ??? ????? }?? ??? ??? ??? ?students.remove(ID);?? ??? ??? ??? ?System.out.println("成功刪除學(xué)生:"+st.name);?? ??? ??? ??? ?break;?? ??? ??? ?}?? ?}?? ??? ?//通過entrySet方法來遍歷Map?? ?public void testEntrySet(){?? ??? ?//通過entrySet方法,返回Map中的所有鍵值對?? ??? ?Set<Entry<String,Student>> entrySet=students.entrySet();?? ???? for(Entry<String,Student>entry:entrySet){?? ??? ?System.out.println("取得鍵:"+entry.getKey());?? ??? ?System.out.println("對應(yīng)的值為:"+entry.getValue().name);?? ?}?? ?}?? ?public static void main(String[] args) {?? ?MapTest mt=new MapTest();?? ?mt.testPut();?? ?mt.testKeySet();?? ?mt.testRemove();?? ?mt.testEntrySet();?? ??? ?}}
慕雪2104191
null就是空!值沒有存進(jìn)去,你要帖代碼!ok?
沒有代碼,并不能看出哪里有問題
舉報
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
3 回答為什么和老師的一樣的會出錯
1 回答為什么我輸入課程然后打印出來的順序和我輸入的一樣呢 試了很多次都是一樣 這是為什么
1 回答控制臺無輸出
5 回答為什么我的控制臺就是輸入不了呢?
1 回答我這個控制臺輸出總是亂碼
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2015-06-02
package com.imooc.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest{
?? ?//用來承裝學(xué)生類型對象
?? ?public Map<String,Student> students;
?? ?
?? ?//在構(gòu)造器中初始化students屬性
?? ?public MapTest(){
?? ??? ?this.students=new HashMap<String,Student>();
?? ?}
?? ?
?? ?//測試添加:輸入學(xué)生ID,判斷是否被占用
?? ?//若未被占用,則輸入姓名,創(chuàng)建新學(xué)生對象,
?? ?//并且添加到students中,
?? ?
?? ?public void testPut(){
?? ??? ?//創(chuàng)建一個Scanner對象,用來獲取輸入的學(xué)生ID和姓名
?? ??? ?Scanner console=new Scanner(System.in);
?? ??? ?int i=0;
?? ??? ?while(i<3){
?? ??? ??? ?System.out.println("請輸入學(xué)生ID:");
?? ??? ??? ?String ID=console.next();
?? ??? ??? ?//判斷該ID是否被占用
?? ??? ??? ?Student st=students.get(ID);
?? ??? ??? ?if(st==null){
?? ??? ??? ??? ?//提示輸入學(xué)生姓名
?? ??? ??? ??? ?System.out.println("請輸入學(xué)生姓名:");
?? ??? ??? ??? ?String name=console.next();
?? ??? ??? ??? ?//創(chuàng)建新的學(xué)生對象
?? ??? ??? ??? ?Student newStudent=new Student(ID,name);
?? ??? ??? ??? ?//通過調(diào)用students的new方法,添加ID—學(xué)生映射
?? ??? ??? ??? ?students.put(ID, newStudent);
?? ??? ??? ??? ?System.out.println("成功添加學(xué)生:"+students.get(ID).name);
?? ??? ??? ??? ?i++;
?? ??? ??? ?}else{
?? ??? ??? ??? ?System.out.println("該學(xué)生ID已被占用!");
?? ??? ??? ??? ?continue;
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?
?? ?//測試Map的keySet方法
?? ?public void testKeySet(){
?? ??? ?//通過keySet方法,返回Map中的所有“鍵”的Set集合
?? ??? ?Set<String> keySet=students.keySet();
?? ??? ?//取得students的容量
?? ??? ?System.out.println("總共有:"+students.size()+"個學(xué)生!");
?? ??? ?//遍歷keySet,取得每一個鍵,再調(diào)用get方法取得每個鍵對應(yīng)的value
?? ??? ?for (String stuId: keySet) {
?? ??? ??? ?Student st=students.get(stuId);
?? ??? ??? ?if(st!=null)
?? ??? ??? ??? ?System.out.println("學(xué)生:"+st.name);
?? ??? ?}
?? ??? ?}
?? ?//測試刪除Map中的映射
?? ?public void testRemove(){
?? ??? ?//獲取從鍵盤輸入的待刪除學(xué)生ID字符串
?? ??? ??? ?Scanner console=new Scanner(System.in);
?? ??? ??? ?while(true){
?? ??? ??? ??? ?//提示輸入待刪除的學(xué)生的ID
?? ??? ??? ??? ?System.out.println("請輸入要刪除的學(xué)生ID!");
?? ??? ??? ??? ?String ID=console.next();
?? ??? ??? ??? ?//判斷該ID 是否有對應(yīng)的學(xué)生對象
?? ??? ??? ??? ?Student st=students.get(ID);
?? ??? ??? ??? ?if(st==null){
?? ??? ??? ??? ??? ?//提示輸入的ID并不存在
?? ??? ??? ??? ??? ?System.out.println("該ID不存在!");
?? ??? ??? ??? ??? ?continue;
?? ??? ??? ??? ????? }
?? ??? ??? ??? ?students.remove(ID);
?? ??? ??? ??? ?System.out.println("成功刪除學(xué)生:"+st.name);
?? ??? ??? ??? ?break;
?? ??? ??? ?}
?? ?}
?? ?
?? ?//通過entrySet方法來遍歷Map
?? ?public void testEntrySet(){
?? ??? ?//通過entrySet方法,返回Map中的所有鍵值對
?? ??? ?Set<Entry<String,Student>> entrySet=students.entrySet();
?? ???? for(Entry<String,Student>entry:entrySet){
?? ??? ?System.out.println("取得鍵:"+entry.getKey());
?? ??? ?System.out.println("對應(yīng)的值為:"+entry.getValue().name);
?? ?}
?? ?}
?? ?
public static void main(String[] args) {
?? ?MapTest mt=new MapTest();
?? ?mt.testPut();
?? ?mt.testKeySet();
?? ?mt.testRemove();
?? ?mt.testEntrySet();
?? ?
?? ?
}
}
2015-05-30
null就是空!值沒有存進(jìn)去,你要帖代碼!ok?
2015-05-30
沒有代碼,并不能看出哪里有問題