有梦想丶的咸鱼
2017-05-31 15:28
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中
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();
//0创建学生对象
Student newStudent=new Student(ID,name);
students.put(ID, newStudent);
System.out.println("成功添加学生:"+students.get(ID).name);
i++;
}else{
System.out.println("该ID已经被占用");
}
}
}
/*
* *测试Map的keySet方法
*
*/
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);
}
}
}
//删除Map中的映射
public void testRemove(){
Scanner console=new Scanner(System.in);
while(true){
System.out.println("请输入要删除的学生ID:");
String ID=console.next();
Student st=students.get(ID);
if(st==null){
System.out.println("输入的学生ID不存在");
continue;
}
students.remove(ID);
System.out.println("成功删除学生ID");
break;
}
}
//通过entrySet方法来遍历Map
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 mt=new MapTest();
mt.testPut();
mt.testKeySet();
mt.testRemove();
mt.testEntrySet();
}
}
while(true)是死循环, continue就是结束这次循环进行下次循环
Java入门第三季
409768 学习 · 4463 问题
相似问题