import java.util.HashSet;
import java.util.Set;
//创建学生类
public class student {
String id; //学号
String sname; //学生姓名
public Set<course> courses; //学生备选课程属性(添加泛型)
public student(String id,String sname){
this.id=id;
this.sname=sname;
this.courses=new HashSet<course>(); //初始化courses属性,将其构造为HashSet类型(实例化);
}
}
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
public class MapTest {
//创建students属性,用来承装学生类型对象
public Map <String,student> 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();
student newStudent=new student(ID,name);
//通过调用students的put方法,添加ID-学生映射
students.put(ID, newStudent);
System.out.println("成功添加学生:"+students.get(ID).sname);
i++;
}
else {
System.out.println("该学生ID已经被占用");
continue;
}
}
}
/*
通过keySet方法遍历Map
*/
public void testKeySet(){
//通过keySet方法,返回Map中的所有“键”的Set集合
Set <String> KeySet=students.keySet();
//遍历keySet,取得每一个键,在调用get()方法取得每一个键所对应的value
//取得students的容量
System.out.println("总共有:"+students.size()+"个学生");
for(String stuid:KeySet){
student st=students.get(stuid);
if(st!=null)
System.out.println("学生:"+st.sname);
}
}
/*
通过entrySet方法来遍历Map
*/
public void testentrySet(){
//通过entrySet方法,返回Map中的所有键值对
Set<Entry<String,student>> entrySet=students.entrySet();
for(Entry<String,student> entry:entrySet){
System.out.println("取得键:"+entry.getKey());
System.out.println("对应的学生姓名为:"+entry.getValue().sname);
}
}
/*
利用put方法修改Map中已有的映射
*/
public void testModify(){
//提示输入待修改学生的ID
while(true){
//取得从键盘输入的学生ID
System.out.println("请输入要修改的学生ID:");
Scanner input=new Scanner(System.in);
String stuID=input.next();
//判断该ID是否有对应的学生对象
student st=students.get(stuID);
if(st==null){
提示输入的ID并不存在
该ID不存在,请重新输入!");
continue;
}
提示当前ID对应的学生对象的姓名
当前ID所对应的学生姓名为:"+st.sname);
提示输入当前ID所对应的学生对象新的姓名,来修改已有的映射
请输入新的学生姓名:");
String name=input.next();
student newstudent=new student(stuID,name);
students.put(stuID, newstudent);
修改成功");
break;
}
}
/*
测试删除Map中的映射
*/
public void testRemove(){
//提示输入待删除学生的ID
while(true){
System.out.println("请输入要删除的学生ID:");
Scanner input=new Scanner(System.in);
String ID=input.next();
//判断该ID是否有对应的学生对象
student st=students.get(ID);
if(st==null){
提示输入的ID并不存在
该ID不存在");
continue;
}
students.remove(ID);
成功删除学生:"+st.sname);
break;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
MapTest mt=new MapTest();
mt.testPut();
mt.testKeySet();
mt.testRemove();
mt.testentrySet();
mt.testModify();
mt.testentrySet();
}
}
java定义学生信息类 java定义学生类采用MAP
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【java】学生管理系统
简单实现学生管理系统
学生管理系统 增删改查 登录注册