package com.imooc_collection;import java.util.HashMap;import java.util.Map;import java.util.Scanner;import java.util.Set;public class MapTest {?/**? * 用來承裝學生類型對象? * @param args? */?public Map<String,Student>students;?/**? * 在構造器中初始化student屬性? * @param args? */?public MapTest(){??this.students=new HashMap<String,Student>();?}?/**? * 測試添加:輸入學生ID,判斷是否被占用? * 若違背占用,則輸入姓名,創建新學生對象,并且? * 添加到student中? * @param args? */?public void testPut(){??Scanner console=new Scanner(System.in);??int i=0;??while(i<3){???System.out.println("請輸入學生ID:");???String ID=console.next();???//判斷該ID是否被占用???Student st=students.get(ID);???if(st==null){????System.out.println("請輸入學生姓名:");????String name=console.next();????//創建一個新的學生對象????Student newStudent=new Student(ID,name);????//通過調用student的put方法,添加ID-學生映射????students.put(ID,newStudent);????System.out.println("成功添加學生:"+students.get(ID).name);????i++;???}else{????System.out.println("該學生ID已被占用!");????continue;???}??}?}??/**? * 測試Map的KepSet方法? * @param args? */?public void testKeySet(){??//通過keySet方法,返回Map中的所有“鍵”的set集合??Set<String>keySet=students.keySet();??//取得students的容量??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 Auto-generated method stub??MapTest mt=new MapTest();??mt.testPut();??mt.testKeySet();?}}
2 回答

大咪
TA貢獻785條經驗 獲得超332個贊
在student的類里重寫tostring方法。。把每個屬性都加上就行
eclipse里按alt+shift+s選擇
英文是generate toString
添加回答
舉報
0/150
提交
取消