package com.xueshengguanli;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
//用来承装学生类型对象
public Map<String,Student> students;
//在构造器中初始化students属性
public MapTest() {
this.students=new HashMap<String,Student>();
}
/**
* 输入学生id,判断是否被占用,,
* 若未被占用,则输入姓名,创建新学生对象,并且
* 添加到students中
* @param args
* @return
*/
public void testPut() {
Scanner in=new Scanner(System.in);
int i=0;
while(i<3) {
System.out.println("请输入学生id");
String id=in.next();
//判断id是否被占用
Student st=students.get(id);
if(st==null) {
System.out.println("请输入学生姓名");
String name=in.next();
Student newStudent=new Student(id,name);
students.put(id, newStudent);
System.out.println("成功添加学生"+students.get(id).name);
i++;
}else {
System.out.println("学生id已被占用");
continue;
}
}
}
/**
* 测试map的keySet方法
*
* @param args
*/
public void testKeySet() {
//通过keySet方法,返回Map中所有"键"的set集合
Set<String> keySet=students.keySet();
//取得students容量
System.out.println("总共有"+students.size()+"个学生");
//通过遍历keySet对象,来取得map中每一个键,再调用map的get方法取得每个键对应的value
for(String stuid:keySet) {
Student st=students.get(stuid);
if(st!=null) {
System.out.println("学生:"+st.name);
}
}
}
public void testRemove() {
Scanner in=new Scanner(System.in);
while(true) {
System.out.println("请输入要删除的学生id");
String id=in.next();
Student st=students.get(id);
if(st==null) {
System.out.println("没有此人");
continue;
}else {
students.remove(id);
System.out.println("学生"+st.name+"已经删除");
break;
}
}
}
public void testEntrySet() {
Set<Entry<String,Student>> entrySet=students.entrySet();
for(Entry<String,Student> entry:entrySet) {
System.out.println("取得键"+entry.getKey());
System.out.println("对应值为"+entry.getValue().name);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mp=new MapTest();
mp.testPut();
mp.testKeySet();
mp.testRemove();
mp.testEntrySet();
}
}
运行结果:请输入学生id
1
请输入学生姓名
we
成功添加学生1
请输入学生id
2
请输入学生姓名
rng
成功添加学生2
请输入学生id
3
请输入学生姓名
ig
成功添加学生3
总共有3个学生
学生:1
学生:2
学生:3
请输入要删除的学生id
2
学生2已经删除
取得键1
对应值为1
取得键3
对应值为3