OverwhelmingCC
2019-02-21 20:23
采纳率: 72.7%
浏览 504
已采纳

求救大佬,为什么roomMap前面是HashMap<String,String>,而不是String?

/**
 * 针对多个映射关系时:
 * yureban 01 zhangsan
 * yureban 02 lisi
 * jiuyeban 01 wangwu
 * jiuyeban 02 zhaoliu
 * */
import java.util.*; 

public class MapDemo {

    public static void main(String[] args) {
        HashMap<String,String> yure=new HashMap<String,String>();
        yure.put("01", "zhangsan");
        yure.put("02", "lisi");
        HashMap<String,String> jiuye=new HashMap<String,String>();
        jiuye.put("01", "wangwu");
        jiuye.put("02", "zhaoliu");
        HashMap<String,HashMap<String,String>> czbk=new HashMap<String,HashMap<String,String>>();
        czbk.put("yureban", yure);
        czbk.put("jiuyeban", jiuye);
        //getStudentInfo(yure);
        Iterator<String> it=czbk.keySet().iterator();
        while(it.hasNext())
        {
            String roomName=it.next();
            HashMap<String,String> room=czbk.get(roomName);
            System.out.println(roomName);
            getStudentInfo(room);
        }
    }
    public static void getStudentInfo(HashMap<String,String> roomMap)
    {
        /*
        Set<String> me=roomMap.keySet();
        Iterator<String> it=me.iterator();
        */
        Iterator<String> it=roomMap.keySet().iterator();
        while(it.hasNext())
        {
            String id=it.next();
            String name=roomMap.get(id);
            System.out.println(id+":"+name);
        }
    }
}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • blownewbee 2019-02-21 20:50
    已采纳
    roomMap是Map类型,Map类型的两个泛型参数一个是key的类型,一个是value的类型
    所以前面必须是HashMap<A,B>
    这种形式的
    
    而roomMap.get(id);,返回的是根据key找到的那个value条目,所以是HashMap<A,B>中的那个B,具体到你这里就是String
    
    点赞 打赏 评论

相关推荐 更多相似问题