A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

//利用键值对关系对象获取,错在哪儿了?
import java.util.*;
class MapDemo1{
public static void main(String[] args){
  Map<String,Integer> m = new HashMap<String,Integer>();
  m.put("abc",12);
  m.put("abd",23);
  m.put("cde",45);
  System.out.println(m);
  //运用entrySet获取Map.Entry<String,Integer>键值对
  Set<Map.Entry<String,Integer>,Integer> set = m.entrySet();
  //迭代
  Iterator<Map.Entry<String,Integer>> it = set.iterator();
  while(it.hasNext()){
   Map.Entry me = it.next();
   String s = me.getKey();
   Integer i = me.getValue();
   System.out.println(s+"="+i);
  }
}
}

7 个回复

倒序浏览
Set泛型写错了,没必要后面再写个Integer。
Map.Entry me = it.next();//这个地方Map.Entry 后面不加泛型,那你下面就要强转,加了泛型就不用。
   String s = me.getKey();//如果上面不加泛型,那这个地方应该是String s = (String)me.getKey();下同
   Integer i = me.getValue();
回复 使用道具 举报
你m.entrySet() 返回的是Set<Map.Entry<String, Integer>> 你写多了,Integer
it.next()返回的是Entry<String, Integer>对象 你写成Map.Entry了 这两处该下就行了
回复 使用道具 举报
star5603 发表于 2014-7-23 21:30
Set泛型写错了,没必要后面再写个Integer。
Map.Entry me = it.next();//这个地方Map.Entry 后面不加泛型, ...

Thank you!总是感觉写不出来唉!
回复 使用道具 举报
我就看看,我不说话。
回复 使用道具 举报
790324255a 发表于 2014-7-23 21:35
你m.entrySet() 返回的是Set 你写多了,Integer
it.next()返回的是Entry对象 你写成Map.Entry了 这两处该下 ...

嗯,首先是不理解为什么要那样写
回复 使用道具 举报
xwh1230 发表于 2014-7-23 21:58
嗯,首先是不理解为什么要那样写

那先把泛型认真学下好了
回复 使用道具 举报
xwh1230 发表于 2014-7-23 21:58
嗯,首先是不理解为什么要那样写

做多就熟悉了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马