package com.imooc.Map;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import com.imooc.collection.Student;
public class MapTest {
public Map<String,Student>students;
/*
* 在构造器中初始化students属性
*/
public MapTest(){
this.students=new HashMap();
}
/*
* 添加学生:
* 首先检查是否被占用,如果被占用,输出提示信息
* 如若没有,将该学生信息输入到学生的属性中,并打印出学生信息
*/
public void TestPut(){
int i=0;
while(i<3){//此处用while循环更加合适!!!
System.out.println("请输入学号:");
Scanner input=new Scanner(System.in);
String id=input.next();
Student newStudent=students.get(id);
if(newStudent==null){
System.out.println("请输入姓名:");
String name=input.next();
//创建学生对象
Student a=new Student(id,name);
students.put(id, a);
System.out.println("成功添加学生"+students.get(id).name);
i++;
}else{
System.out.println("您的id已被占用!");
continue;
}
}
}
public void testKeySet(){
//通过keySet方法,返回Map中的所有"键"的Set集合
Set<String> keySet=students.keySet();
//遍历keySet,取得每个key值,再调用get方法取得每个键对应的value
for(String stuID:keySet){
Student st=students.get(stuID);
System.out.println(st.name);
}
}
/*
* 删除Map中的映射
*/
public void testRemove(){
System.out.println("请输入要删除的id:");
while(true){
Scanner input=new Scanner(System.in);
String id=input.next();
Student st=students.get(id);
if(st==null){
System.out.println("您输入的id不存在,请重新输入:");
continue;
}
students.remove(id);
System.out.println("已经成功删除"+st.name);
break;
}
}
/*
* 通过entrySet方法遍历Map
*/
public void testEntrySet(){
System.out.println("总共有"+students.size()+"个学生");
//通过entrySet方法返回所有的键值对
Set<Entry<String, Student>> entrySet=students.entrySet();
for(Entry es:entrySet){
System.out.println("key值:"+es.getKey());
System.out.println("Value值:"+es.getValue());
}
}
/*
* 利用put方法修改Map中的已有映射
*/
public void testModify(){
while(true){
System.out.println("请输入要修改的学生id:");
Scanner input=new Scanner(System.in);
String ID=input.next();
Student nameNow=students.get(ID);
if(nameNow==null){
System.out.println("你输入的ID不存在,请重新输入:");
continue;
}else{
System.out.println("要修改的学生姓名为:"+nameNow.name);
System.out.println("请输入新的学生名字:");
String nameNew=input.next();
Student st=new Student(ID,nameNew);
students.put(ID, st);
System.out.println("id为"+ID+"的学生姓名成功修改为"+nameNew);
break;
}
}
}
public static void main(String[] args){
MapTest mt=new MapTest();
mt.TestPut();
mt.testKeySet();
mt.testRemove();
mt.testModify();
mt.testEntrySet();
}
}