为了账号安全,请及时绑定邮箱和手机立即绑定

Map中的key值是自己设定的吗

Map中的key值是自己设定的吗

飞行烤鸭 2017-01-10 12:36:23
难道这里的key值是Map中存放的Student的id属性? Student类代码如下:/** * 学生类 * @author yang *2017年1月9日 */public class Student { public String id; public String name; public Set<Course>courses; public Student(String id,String name){  this.id=id;  this.name=name;  this.courses=new HashSet<Course>(); }}public MapTest(){  students=new HashMap<String,Student>(); }  /**  * 测试添加:键入学生ID,判断是否被占用,  * 若未被占用,则输入姓名,创建新学生对象,并且添加到students中  * @param args  */ public void testPut(){  Scanner console=new Scanner(System.in);  int i=0;  while(i<3){   System.out.println("请输入学生ID");   String ID=console.next();   Student st=students.get(ID);   if(st==null){   //提示输入学生姓名    System.out.println("请输入学生姓名");    String name=console.next();    Student newStudent=new Student(ID, name);    students.put(ID, newStudent);    System.out.println("成功添加学生"+students.get(ID).name+students.get(ID).id);    i++;   }   else{    System.out.println("该学生ID已被占用");    continue;   }  } }  /**  * 测试Map的keySet方法  * @param args  */ public void testKeySet(){  //通过keySet方法,返回Map中的所有“键”的Set集合  //Map的keySet方法,返回的是Map中所有"键"的Set集合,Set集合哟!!!  Set<String> keySet=students.keySet();  //遍历KeySet,取得每一个键,再调用get方法取得每个键对应的value。  System.out.println("总共有"+students.size()+"个学生");  for(String stuId:keySet){   Student st=students.get(stuId);   if(st!=null){   System.out.println("学生"+st.name);   }  } }
查看完整描述

2 回答

已采纳
?
快乐的时光

TA贡献79条经验 获得超48个赞

Map的key和value依据你的需求你自己设定的,例如上面的代码 students=new HashMap<String,Student>();

你限定key为学生学号,为String类型,value为student实体类,为Student类型.

主要是依据你的需求自己设定的。

查看完整回答
1 反对 回复 2017-01-10
?
路过转

TA贡献4条经验 获得超10个赞

map中key和value的数据类型是写代码的人自己设定的,然后根据设定好的数据类型来输入数据

查看完整回答
3 反对 回复 2017-01-10
  • 2 回答
  • 0 关注
  • 2563 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信