Set<String> keySet,这时ketSet里面的元素全部变成String类型吗

来源:5-2 学生选课---使用 Map 添加学生

qq_亭亭雨中_0

2019-08-12 10:53

public void testKeySet(){
    Set<String > keySet = student.keySet();    //此时的keySet是字符串类型???那键值对呢,学生对应课程怎么算呢?
    System.out.println("总共有:"+student.size()+"个学生!");
    for (String stuId:keySet){
        Student st = student.get(stuId);
        if (st != null)
            System.out.println("学生:"+st.name);
    }
}


写回答 关注

4回答

  • qq_慕虎6321845
    2020-07-10 23:51:27

    我的理解是这个keySet是为了后面的students.get方法能取得keySet中的键,而students又规定了键是String类型,所以这个keySet也应该为String类型。(或者这样:前面规定了键Key是String类型,value 是Student类型,所以为了得到Map中所有Key的Set集合,所以KeySet必须用String类型)

  • 慕粉7367658
    2019-08-23 19:00:07

    set集合里面存的是key的值  key的值本来就是string类型的 


  • 慕圣437346
    2019-08-16 09:31:49

    此时 在类中新建的KeySet里面存放的是  student(此对象为Entry类型键值对)的所有键的值,

    Student st = student.get(stuId);

    这一句 调用map的get方法,通过每个键  去寻找对应的值,该值为Student类型

  • 请叫我刘锅锅
    2019-08-12 17:07:25

    是的 。 使用了泛型的变量 ,那么该变量都是泛型的对应值

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409771 学习 · 4363 问题

查看课程

相似问题