麻烦帮我看下这段代码

麻烦帮我看下这段代码

Iterator it=(Iterator) football.values().iterator()

	public static void main(String[] args) {
		Map<Integer,String>football=new HashMap<Integer,String>();
		System.out.println("请输入数据");
		Scanner footballcup=new Scanner(System.in);
		int i =0;
		while(i<5){
			System.out.println("年份");
			Integer key=footballcup.nextInt();
			System.out.println("国家");
			String value=footballcup.next();
			football.put(key, value);
			i++;
			//定义HashMap的对象并添加数据
		}
       
       
		
		System.out.println("*****************");
		Iterator it=(Iterator) football.values().iterator();
		//使用迭代器的方式遍历		


Iterator it=(Iterator) football.values().iterator();  这句话是eclipse提示修改的。但是我并不明白原理。

  1. 为什么课程当中不需要转型,而我的代码需要转型,是因为添加了泛型吗?如果是,那又是为什么不需要转型呢?

  2. 我的key值是Integer类型,因此我这样写。Iterator<Integer,String> it= football.values().iterator();,为什么这个又报错的呢?

  3. 如果我使用迭代器不仅要输出value,还想输出key,要怎么写呢?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

Iterator it=(Iterator) football.values().iterator(); //就是得到Map的values迭代器iterator,目的是下面使用iterator遍历value。

1)Iterator需要添加类型约束,你遍历的values是String,所以这里你需要改成StringIterator<String> it = football.values().iterator();

2)Map.values()遍历所有的value,但不能遍历key

3)如果想遍历key和value

Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
while (it.hasNext()) {
     Map.Entry<Integer, String> entry = it.next();
     System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}


慕斯卡8207446 2018-06-20 11:59:20

Iterator it=(Iterator) football.values().iterator();

这行代码有问题,迭代强转,我没这样用过,正确输入:

Iterator<String> it = football.values().iterator();
        // 使用迭代器的方式遍历
        while (it.hasNext()) {
            System.out.println(it.next());

        }

  • Iterator it=(Iterator) football.values().iterator();没有语法错误,只是用起来不太方便而已
    2018-06-20 17:12:55
提问者 广州麻辣牛杂档 2018-06-12 18:32:41
Iterator<String> it= football.values().iterator();

这样也报错,诡异啊

  • 你在eclipse中测试一下,在线编辑器对Scanner支持不好
    2018-06-12 18:45:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师