package com.imooc.collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
/**
* 创建Map类型的属性用于存储学生对象
*/
public Map<String,Student> students;
/**
* 在构造器中初始化students属性
*/
public MapTest(){
this.students=new HashMap<String,Student>();
}
/**测试添加,输入学生ID,查找如果存在就返回
* 如果不存在就输入姓名,创建学生对象,并且添加到students中*/
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);//使用键值 String ID去获取实值Student
if(st==null){
System.out.println("请输入学生的姓名");
// st.setName(console.next());
// st.setId(ID);
String name=console.next();
Student newStu=new Student(ID,name);
students.put(ID,newStu);
System.out.println("成功添加一个学生,ID="+ID+"NAME="+newStu.getName());
i++;
}
else
{
System.out.println("该学生已经存在");
continue;
}
}
}
/**
* 测试keySet方法遍历Map中的元素*/
void testKeySet()
{
//因为students的键值是String类型的,所以需要String类型的Set泛型去接收它的值
//浙江keySet对象就存储了Map中所有“键值”
Set<String> keySet=students.keySet();
//取得students的容量
System.out.println("Map容器中的students对象大小为:"+students.size());
//遍历所有的keySet取得每个键值,然后用get方法取得每个实值
for (String stuId:keySet ) {
Student st=students.get(stuId);
if(st!=null)
System.out.println("学生的名字是:"+st.getName());
}
}
public static void main(String[] args) {
MapTest mapTest=new MapTest();
mapTest.testPut();
mapTest.testKeySet();
}
}